![](/img/trans.png)
[英]UIView created in IB has no frame in viewDidLoad and awakeFromNib
[英]UIView and UILabel created on IB their outlets returning “nil” in viewDidLoad
如http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/中所示 ,我已经用UIView(contentViewForScroll)设置了UIScrollView来保存所有内容,但IB没有显示任何警告关于错位,预期宽度等等。
但是,当我尝试以编程方式添加约束条件以设置viewDidLoad上的“ contentViewForScroll”的宽度时,我得到了一个奇怪的错误描述,在google之后,我发现这意味着您的对象的属性返回“ nil”。 这就是正在发生的事情! 然后我意识到,当我修改其属性时,我的UILabel不会更改其值。 其他UILabel和UIButtons均按预期更改了其文本和标题属性。
我尝试重命名两个控件(这就是为什么它有这么长的名称),更改.h文件或.m文件中的定义的原因。 什么都没有。
有任何想法吗?
这是我在.m文件中的代码:
@interface MarketsViewController ()
@property (strong, nonatomic) IBOutlet UILabel *labelMarketName; // This is returning nil
@property (strong, nonatomic) IBOutlet UIImageView *imageVenueCover;
@property (strong, nonatomic) IBOutlet UILabel *labelMarketAddress;
@property (strong, nonatomic) IBOutlet UILabel *labelMarketCity;
@property (strong, nonatomic) IBOutlet UIView *contentViewForScroll; // This is returning nil
@end
@implementation MarketsViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"UIView: %@", self.contentViewForScroll); // this is returning "UIView: (null)"
NSLog(@"UILabel: %@", self.labelMarketName); // this is returning "UILabel: (null)"
}
@end
谢谢
您是否将情节提要中的对象链接到插座? 为此,您可以打开助手编辑器并将ctrl从情节提要中的对象拖到上述代码中的出口。 或者,您可以从对象拖动到文件所有者,然后从那里选择出口。
需要注意的一件事是,通常您希望使IBOutlets变弱,而不是像上面那样变强。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.