所以看来我应该在viewDidLoad设置我的成员variables – 但我很困惑,为什么在initWithCoder设置这些variables失败,因为都在程序的开始时被调用。 特别是我有一行代码: [worldView setMapType:MKMapTypeSatellite]; 其中worldView是一个IBOutlet MKMapView对象。 它在viewDidLoad下工作,但不是initWithCoder 。
我有一个使用Interface Builder构build的自定义UIView ( MyCustomUIView )。 我想把这个自定义视图放在MyViewController的视图中,这也是使用IBdevise的。 我已经在MyViewController的XIB中放置了一个UIView作为子视图,并将它的类设置为MyCustomUIView 。 问题是,当我运行代码时,只有一个空白的视图出现。 (当我在代码中实例化MyCustomUIView时,它显示得很好。) 我只在MyCustomUIView.m覆盖initWithFrame:方法如下: – (id)initWithFrame:(CGRect)frame { [[NSBundle mainBundle] loadNibNamed:@"MyCustomUIView" owner:self options:nil]; self = self.view; return self; } 我该怎么做才能正确加载视图? initWithCoder:应该如何?
我有一个UITableViewCell的子类。 我的子类包含几个UILabel 。 我希望我的子类将这些标签初始化为适用于我的每个表视图单元格的一些默认设置。 我读过,我应该使用initWithCoder为此。 我的initWithCoder函数被调用,并且我可以遍历函数中的每一行,并且看起来是通过运动。 当我运行我的应用程序时,我没有看到任何正在应用的属性。 最明显的是,字体没有被改变。 我只是不认为我正在修改的属性,我的UILabel实际上正在保存,或显示。 我将这个子类与Storyboard结合使用。 我知道我的更改不会反映在Storyboard ,但是它们在应用程序运行时也不会被反映 – 尽pipe我的代码正在执行。 编辑:我想提到,在尝试覆盖initWithCoder ,我有这些子类中的实例方法,我会运行此逻辑。我只是调用cellForRowAtIndexPath内的实例方法。 这个方法正在工作,但是我认为在这个子类中自动产生这个逻辑会很方便。 有任何想法吗? 我的代码如下: #import "ThreadListCell.h" @implementation ThreadListCell – (id)initWithCoder:(NSCoder *)aDecoder { if ((self = [super initWithCoder:aDecoder])) { // adjust the font settings of the title self.title.font = [UIFont fontWithName:@"SourceSansPro-Black" size:16]; self.title.textColor = [UIColor colorWithWhite:0.267f alpha:1.0f]; // adjust the font […]