iOS 超级奇怪的问题,子视图在我没有添加的情况下添加

Posted

技术标签:

【中文标题】iOS 超级奇怪的问题,子视图在我没有添加的情况下添加【英文标题】:iOS super weird problem, subviews added without me adding them 【发布时间】:2011-06-23 11:49:35 【问题描述】:

我有一个 UIScrollView,我向其中添加了几个子视图(在 loadView 中完成)(参见代码):

// Add the views to the Scroll View
[scrollView addSubview:label];
[scrollView addSubview:careerDescriptionWebView];

self.view = scrollView;

我稍后想要计算添加的子视图的高度(在viewWillAppear: 中完成以设置 UIScrollView 的高度(参见此代码):

// Change the height of the Scroll View dynamically to match the content
float hgt = 0; 

for (UIView *view in scrollView.subviews) 
    hgt += view.frame.size.height;
    NSLog(@"View: %@, height: %f", [[view class] description], view.frame.size.height);
    

[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width,hgt)];

所以稍后当我检查控制台的输出时,我会看到:

2011-06-23 13:34:48.344 Acando[90355:207] View: UILabel, height: 21.000000
2011-06-23 13:34:48.345 Acando[90355:207] View: UIWebView, height: 1017.000000
2011-06-23 13:34:48.346 Acando[90355:207] View: UIImageView, height: 7.000000
2011-06-23 13:34:48.347 Acando[90355:207] View: UIImageView, height: 145.000000

这不会立即出现,起初它正确显示,只有一个 UILabel 和一个 UIWebView 它似乎在加载视图控制器几次后随机出现。

【问题讨论】:

【参考方案1】:

这是因为scrollview在这个视图中还有2个东西,一个是水平滚动条,第二个是垂直滚动条,当你上下左右滚动时会自动显示

【讨论】:

谢谢,这对我来说不是很明显 :)

以上是关于iOS 超级奇怪的问题,子视图在我没有添加的情况下添加的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 添加约束后无法识别触摸

如何在iOS中使子视图成为圆角作为超级视图?

在 SWRevealViewController 的情况下,掩码视图未从超级视图中删除

如何在不缩放图像子视图的情况下缩放图像?迅速的ios

在 iOS 8 中将 ViewController 的 View 作为子视图添加到 UIPageViewController 会在显示/隐藏时产生奇怪的 UINavigationBar

ios水平滚动视图和自动布局问题