繁体   English   中英

覆盖UIView的框架

[英]Override UIView's frame

我已经继承了UIView的子类,但是我需要防止框架发生变化,因此我尝试覆盖setFrame:方法,而忽略传递的值,并基于self.superview创建我自己的CGRect并将其传递给[super setFrame:

如何使UIView的框架不变? (从子类内部)

第1步:重写setFrame不执行任何操作。

- (void)setFrame:(CGRect)newRect
{
}

步骤2:将半静态框架设置移至willMoveToSuperview:替代版本中,以获取有效的willMoveToSuperview:参考。

- (void)willMoveToSuperview:(UIView *)newSuperview
{
   CGRect newFrame = newSuperview.frame;
   //manipulate the frame here
   [super setFrame:newFrame];
}

等一下,您不能将autoresizingMask设置为0吗? 尽管这样做可以防止在调整父视图的大小时对其进行调整(也尝试过,并且似乎对我有用)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM