- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从一个空项目开始,并添加了一个 View Controller 及其 Nib 。在 nib 内部,有一个以 UIScrollView 为 subview 的 View 。在 ScrollView 中,我有多个 Assets ,如文本字段、标签和按钮。
当键盘出现时,我希望我的 ScrollView 向上移动。我在 stackoverflow 上查看了如何执行此操作。我基本上是复制代码并尝试理解它。但是, View 仍然没有向上移动。所以是时候进行一些调试语句了....
我的 UIScrollView 连接(IBOutlet)到 RootViewController 并且可以从那里访问。我尝试打印出我的 scrollView(实例名称)并且我得到了一个对象。但是,当我尝试打印出 scrollView.frame 时......我得到了 null......有人知道这是为什么吗?
这是我的一些调试语句的一些代码片段
- (void) moveScrollView:(NSNotification *) notification up: (BOOL) upFlag{
NSDictionary * userInfo = [notification userInfo];
NSTimeInterval animationDuration;
UIViewAnimationCurve animationCurve;
CGRect keyboardEndFrame;
[[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] getValue:&animationCurve];
[[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] getValue:&animationDuration];
[[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardEndFrame];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:animationDuration];
[UIView setAnimationCurve:animationCurve];
CGRect newFrame = scrollView.frame;
CGRect keyboardFrame = [self.view convertRect:keyboardEndFrame toView:nil];
NSLog(@"scrollView: %@", scrollView);
NSLog(@"frame: %@", scrollView.frame);
NSLog(@"Old Height: %@", scrollView.frame.size.height);
newFrame.size.height -= keyboardFrame.size.height * (upFlag ? 1 : -1);
NSLog(@"New Height: %@", newFrame.size.height);
scrollView.frame = newFrame;
[UIView commitAnimations];
}
- (void) keyboardShow:(NSNotification *) notification{
NSLog(@"Keyboard Show");
[self moveScrollView: notification up:YES];
}
最佳答案
您不能使用 %@ 打印框架。 %@ 打印 Objective C 对象; frame 不是 Objective C 对象。它是一个 C 结构,CGRect。像这样单独打印其组件:
NSLog(@"frame: (%0f %0f; %0f %0f)",
scrollView.frame.origin.x, scrollView.frame.origin.y,
scrollView.frame.size.width, scrollView.frame.size.height);
我认为使用调试器更有效。在调试器中,您可以使用
po object
打印 Objective C 对象,以及
print (CGRect)[scrollView frame]
打印框架。
顺便说一句,Apple 文档中推荐的调整键盘 ScrollView 的方法是设置内容插入,而不是更改框架。我也开始改变框架,但遇到了奇怪的问题。
关于iphone - 对为什么我的 UISCrollView 的框架为空感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8026268/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!