gpt4 book ai didi

ios - IBOutletCollection 中不同对象的框架返回空

转载 作者:行者123 更新时间:2023-11-28 22:28:53 24 4
gpt4 key购买 nike

我在 Storyboard上创建了 8 个不同的对象(4 对 UIImageView 和 textview)并将它们中的每一个连接到一个 IBOutletCollection,但是当我这样做时

for (UIView *element in infoElements) {
NSLog(@"frame: %@", NSStringFromCGRect(element.frame));
}

返回

frame: {{0, 0}, {0, 0}}

[infoElements count] 正确返回 8

NSLog(@"element: %@", element);

正确返回对象,只是缺少框架。我只需要 IBOutletCollection 中每个对象的位置(x 和 y)。

初始化是这样的:

@interface infoViewController : UIViewController{
IBOutletCollection(UIView) NSArray *infoElements;
}

@property (nonatomic, retain) IBOutletCollection(UIView) NSArray *infoElements;

我在谷歌上搜索了好几个小时,没有发现任何人遇到同样的问题(this unanswered question here 除外),所以我认为我只是做错了什么

编辑

澄清一下,IBOutletCollection 中的对象不在位置 0,0,而是大于 0,0

最佳答案

我猜你正在使用自动布局。在这种情况下,在调用 layoutSubviews 之前不会设置框架。

因此,如果您需要获取框架,您可以在 - (void)viewDidLayoutSubviews 中执行此操作。但是,如果您打算操纵框架,则在使用自动布局时应该使用约束来实现。

另一种选择是在 Storyboard中关闭自动布局。

关于ios - IBOutletCollection 中不同对象的框架返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com