从笔尖加载的 UIView 未显示多个 UILabel

Posted

技术标签:

【中文标题】从笔尖加载的 UIView 未显示多个 UILabel【英文标题】:Multiple UILabel not displaying with UIView loaded from nib 【发布时间】:2015-05-06 21:06:09 【问题描述】:

我正在尝试从 nib 加载 UIView 并将其作为 UICollectionView 的“标题”,使用视图控制器的 viewDidLoad 中的以下代码:

self.collectionView.contentInset = UIEdgeInsetsMake(220, 0, 0, 0);
self.overView = (OverviewView *)[[[NSBundle mainBundle] loadNibNamed:@"OverviewNib" owner:self options:nil] objectAtIndex:0];
[self.overView setFrame:CGRectMake(10, -210, self.view.frame.size.width - 20, 200)];
[self.collectionView addSubview:self.overView];

OverviewView 类的子视图在其 nib 中有几个 UILabel 带有自动布局指令。一种是固定到视图的左上角。但是没有一个UILabel 出现。

我可以看到 nib 正在加载,因为它的 awakeFromNib 方法正在被调用。此外,我可以看到我在 Interface Builder 中设置的视图的背景颜色。我已将视图的所有者设置为视图控制器的类。

如何确保这些UILabel 出现?

【问题讨论】:

为什么直接添加为子视图?为什么它不是布局的一部分或集合视图的兄弟? 它不是集合视图的兄弟,因为我希望视图与集合视图一起滚动。如果您知道更好的方法,我会全力以赴! 【参考方案1】:

您应该将其创建为布局中的标题视图,然后设置内容偏移量/插入,以使其最初滚动到屏幕之外(如果这是您的目标)。通过使其成为布局的一部分,它将被正确管理,而通过将其直接添加到集合视图中,您将隐藏它并希望集合不会弄乱它...

【讨论】:

以上是关于从笔尖加载的 UIView 未显示多个 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

将笔尖加载到 UIView 中?

Objective C - 从笔尖加载 UIView?

从笔尖加载的 UITableViewCell 未更新(缓存?)

从笔尖加载的 UITableView 单元格不显示背景颜色

尝试以编程方式加载笔尖,接收 Xcode 6 中未遇到的无数错误

iCarousel 多个笔尖