我正在浏览iTunes上的斯坦福iphone开发讲座,并在第5讲中遇到了这个问题。 我们正在尝试确保在设备旋转时进行重绘。 我有两个与此相关的问题:
谢谢。
-(void)setup
{
self.contentMode = UIViewContentModeRedraw;
}
-(void)awakeFromNib
{
[self setup];
}
-(id)initWithFrame:(CGRect)frame
{
self=[super initWithFrame:frame];
if (self) {
[self setup];
}
return self;
}
答案 0 :(得分:20)
awakeFromNib
会调用 NSBundle
。在初始化视图时,您实际上有两个不同的代码路径,具体取决于它是从nib加载还是在运行时创建的。如果它是从笔尖加载的,部分加载会通过调用initWithCoder:
对其进行初始化,然后在连接所有出口后稍后调用awakeFromNib
。如果以编程方式创建视图,则使用initWithFrame:
初始化它(并且永远不会调用awakeFromNib
,因为它未从nib加载)。
答案 1 :(得分:0)
首先,initWitFrame将使用给定的矩形空间初始化您使用的内容
CGRect是坐标位置。阅读CGRectMake。基本思路是CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
对于你的下半部分,请检查this