【发布时间】:2011-06-17 21:10:01
【问题描述】:
我有一个从 nib 加载的视图控制器,其中我定义了一个高度为 346 像素的滚动视图。但是,当我这样做时:
int h = scrollView.frame.size.height;
NSLog(@"%d",h);
在 viewDidLoad 中我得到 375。
我需要 viewDidLoad 中的适当高度(或其他类似方法),以便我可以根据高度以编程方式设置滚动视图的内容(不希望它垂直“溢出”,仅水平“溢出”,它的分页) .
滚动视图打开了每一行自动调整大小。 (全是鲜红色)。奇怪的是,当视图加载时,我可以看到滚动视图是(正确的)346 像素高而不是 375,因此它必须在 viewDidLoad 和显示视图之间的某个位置更改为正确的值。
我在这里陷入了死胡同,任何获得适当大小的视图的方法都会非常有帮助。在此先感谢您,如果您需要更多信息,请发表评论。
edit:我解决它的方法是在 viewDidLoad 中放置一个 0.1 秒的计时器,当调用该计时器时,我完成了我需要做的工作。不过这有点小题大做,因此我们将不胜感激任何其他建议。
【问题讨论】:
-
你是在
[super viewDidLoad]之后调用那个代码吗? -
benwong:不,我忘了叫super,但我只是在开头添加了它,没有任何改变。我确实设法通过我在编辑中展示的 hack 解决了这个问题。
-
我们在代码中看到的高度单位是不是像素。它们是积分。这就是为什么我们可以编写代码并让它在 iPhone 4s 和普通 iPhone 上正确显示的原因。仅供参考:)
-
呵呵,是的,我知道,我只是马虎......
-
这是一个很好的答案:stackoverflow.com/a/6758424/864286
标签: iphone ios uiscrollview ios-4.2 viewdidload