开发时 如果发现xib中的frame变来变去的,首先考虑autoresizing 所以呢 先打印frame 然后再打印2s 或者3s之后的frame 如果两次打印的值不一致的话 再来打印autoresizingMask
默认从xib中创建出来的控件 autoresizingMask 默认就是18(UIViewAutoResizingFlexbleHeight | UIViewAutoResizingFlexbleWidth)
autoresizingMask用于控制当前这个控件的宽度、高度、左右边距、上下边距,跟随父控件自动伸缩
如果我们将xib中自带的view删除,然后再拖拽一个view到xib中 autoresizingMask = 36
如果不希望xib中的控件跟随父控件自动伸缩的话 则修改其
view.autoresizingMask = UIVIewAutoresizingMaksNone
一般情况下,
以下这些view的autoresizingMask默认就是 18(UIViewAutoResizingFlexbleHeight | UIViewAutoResizingFlexbleWidth)
1.从xib中创建出来的默认控件
2.控制器的view
UITableViewCell的contentView发生变化
contentView是用来填充整个cell的。contentView有多大cell就有多大,执行
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
这段代码时,contentView{320,398} voiceView{244,119}
当执行到return cell时
contentView{375,170} voiceView{299,0}
如果希望xib里控件多大就显示多大的是 则可以 -(void) awakeFromNib{
self.autoresizingMaks =
UIViewAutoresizingNone
}
网友评论