【发布时间】:2013-10-08 16:08:47
【问题描述】:
设置:
我正在 Xcode 5 中处理一个显示一组文本字段的视图。为了在键盘出现时处理滚动,我使用滚动视图来放置我的 TextFields。我正在使用自动布局。
问题:
我正在努力解决在运行时将额外空间添加到滚动视图顶部的问题。就像一个插图被应用到我的滚动视图,虽然我已经通过日志确认插图是零。
在我的 viewDidLoad() 方法实现中,我这样做是为了确认值...
UIEdgeInsets contentInsets = UIEdgeInsetsZero;
self.scrollView.contentInset = contentInsets;
self.scrollView.scrollIndicatorInsets = contentInsets;
self.scrollView.contentSize = self.scrollView.bounds.size;
self.scrollView.contentOffset = CGPointMake(0.0, 0.0);
NSLog(@"Content Size: %f x %f", self.scrollView.contentSize.height, self.scrollView.contentSize.width);
NSLog(@"Bounds Size: %f x %f", self.scrollView.bounds.size.height, self.scrollView.bounds.size.width);
NSLog(@"Frame Size: %f x %f", self.scrollView.frame.size.height, self.scrollView.frame.size.width);
NSLog(@"Inset Size top: %f bottom: %f", self.scrollView.contentInset.top, self.scrollView.contentInset.bottom);
NSLog(@"Scroll Inset Size top: %f bottom: %f", self.scrollView.contentInset.top, self.scrollView.contentInset.bottom);
输出:
2013-10-08 11:38:42.953 test[6440:a0b] Content Size: 455.000000 x 320.000000
2013-10-08 11:38:42.954 test[6440:a0b] Bounds Size: 455.000000 x 320.000000
2013-10-08 11:38:42.955 test[6440:a0b] Frame Size: 455.000000 x 320.000000
2013-10-08 11:38:42.955 test[6440:a0b] Inset Size top: 0.000000 bottom: 0.000000
2013-10-08 11:38:42.956 test[6440:a0b] Scroll Inset Size top: 0.000000 bottom: 0.000000
在我的第一个文本字段上方添加的空格(插图)似乎大约等于标准导航标题,但这可能是巧合。
我的滚动视图的高度设置为 455,y 值为 64,以适应导航状态栏和底部的标签栏。
我没有任何关于潜在问题的布局通知。滚动视图顶部和底部空间约束定位为 0 点(我从状态和标签栏推测。
当运行应用并在滚动视图中看到额外的空间时,滚动条仅覆盖了预期的空间(它们不包括这个额外的空间作为可滚动区域的一部分)。
最后一件事要注意。当我执行我的键盘通知逻辑时。 (taken from apple here...) 问题自行解决,没有空间了。这看起来像是故事板中配置的初始化问题?
谢谢!
【问题讨论】:
-
我猜这不是问题,因为被 NSLogged 的插图是 0,但是你有没有“调整滚动视图插图”/automaticallyAdjustsScrollViewInsets 开启或关闭?
标签: objective-c uiscrollview storyboard ios7 autolayout