我使用CGRectMake(x,x,x,x)在我的视图中放置了一个按钮,x是位置和大小。当我使用-(BOOL)shouldAutoRotate旋转视图时…我想把按钮的位置从竖屏模式的中心改为横屏模式的中心。按钮包含用户设置的标签信息,所以我不想为横向方向使用不同的视图。如果他们设置竖直方向的东西旋转到水平方向呢?他们会丢失数据。我的问题是,如何移动之前设置的东西?看看下面的代码,我不想重新分配按钮。谢谢!
// DATE
lblDate = [[UILabel alloc] initWithFrame:CGRectMake(x, y, width, height)];
lblDate.text = @"Date:";
lblDate.backgroundColor = [UIColor clearColor];
[contentView addSubview:lblDate];
将frame设为一个新的Rect,例如
lblDate.frame = CGRectMake(x,y,width,height);
lblDate.frame = newRect
但是你应该使用自动调整大小标志
在UIView类引用中找到。
框架框架矩形,它描述视图的位置和大小Superview的坐标系统。
@property(nonatomic) CGRect frame这个矩形定义了视图的大小和位置父视图的坐标系统。你使用布局时的矩形的大小和位置操作视图。设置此属性更改中心点:由中心指定的点属性和边界内的大小相应的矩形。的坐标的矩形总是
警告:如果transform属性是不是恒等变换,是值的值是未定义的
改变框架矩形自动重新显示接收器不调用drawRect:方法。如果你想使用drawRect:方法当帧为矩形时调用更改时,设置contentMode属性UIViewContentModeRedraw。
对此属性的更改可以动画。但是,如果变换属性包含非标识变换坐标系的值属性是未定义的,不应该这样做被修改。在这种情况下,你可以使用中心重新定位视图属性,并使用