覆盖UIView的框架

时间:2011-04-21 21:23:19

标签: iphone objective-c uiview

我已经将UIView子类化了,但是我需要阻止框架的更改,所以我尝试重写setFrame:方法并忽略传递的值,并在self.superview上创建自己的CGRect基础并传递它到[super setFrame:

如何让UIView的画面不变? (来自子类内)

2 个答案:

答案 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?我虽然这会阻止视图在调整父视图大小时调整大小(也尝试过,似乎对我有用)。