首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IBOutletCollection中不同对象的帧返回空

IBOutletCollection中不同对象的帧返回空
EN

Stack Overflow用户
提问于 2013-08-05 19:38:01
回答 1查看 227关注 0票数 0

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

代码语言:javascript
复制
for (UIView *element in infoElements) {
    NSLog(@"frame: %@", NSStringFromCGRect(element.frame));
}

它回来了

代码语言:javascript
复制
frame: {{0, 0}, {0, 0}}

infoElements计数正确返回8

代码语言:javascript
复制
NSLog(@"element: %@", element);

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

初始化如下:

代码语言:javascript
复制
@interface infoViewController : UIViewController{
    IBOutletCollection(UIView) NSArray *infoElements;
}

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

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

编辑

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-05 21:18:40

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

因此,如果您需要获得框架,您可以在- (void)viewDidLayoutSubviews中这样做。但是,如果您正在计划操作框架,那么在使用自动布局时,您应该使用约束进行操作。

另一种选择是关闭你的故事板中的自动布局。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18066299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档