以下代码在 iOS 7.1 上完美运行
UIView *superView = self.superview;
[self removeFromSuperview];
CGFloat rightMarginWidth = self.rightMarginWidth ? self.rightMarginWidth : defaultRightMarginWidth;
CGRect newFrame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width + rightMarginWidth, self.frame.size.height);
//assign a new frame
self.frame = newFrame;
[superView addSubview:self];
但是,在 iOS 8.0 上,假设 newFrame 为 origin=(x=30, y=29) size=(width=127, height=34)。赋值后,self.frame
变为 origin=(x=0, y=0) size=(width=127, height=34)。
为什么“原点”值在这里丢失了?
最佳答案
如果 View Controller 具有自动布局约束,则应添加 self.translatesAutoresizingMaskIntoConstraints = YES;
关于uiview - CGRect 的 setFrame 在 iOS 8.0 上丢失了原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25943293/