我已经将UIView子类化了,但是我需要阻止框架的更改,所以我尝试重写setFrame:
方法并忽略传递的值,并在self.superview
上创建自己的CGRect基础并传递它到[super setFrame:
如何让UIView的画面不变? (来自子类内)
答案 0 :(得分:6)
第1步:覆盖setFrame,什么都不做。
- (void)setFrame:(CGRect)newRect
{
}
第2步:将半静态框架设置移动到被覆盖的willMoveToSuperview:
版本中,以获得有效的超级视图参考。
- (void)willMoveToSuperview:(UIView *)newSuperview
{
CGRect newFrame = newSuperview.frame;
//manipulate the frame here
[super setFrame:newFrame];
}
答案 1 :(得分:0)
等等,你能不能将autoresizingMask设置为0?我虽然这会阻止视图在调整父视图大小时调整大小(也尝试过,似乎对我有用)。