将 CGRectMake (x,x,x,x) 更改为不同的位置,例如 (y,y,y,y)

发布于 2024-11-18 22:14:11 字数 448 浏览 6 评论 0原文

我使用 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];

I have placed a button in my view using CGRectMake(x,x,x,x), x being the location and size of course. When I rotate the view using -(BOOL)shouldAutoRotate... I want to change the location of the button from what would be the center in portrait mode to the center in landscape mode. The button contains information in its label that the user sets, so I DON'T want to use a different view for the landscape orientation. What if they set something in portrait and rotate to horizontal? They'll lose their data. So my question is: how do I move something that was previously set? See the code below, I don't want to realloc the button. Thanks!

// DATE

lblDate = [[UILabel  alloc] initWithFrame:CGRectMake(x, y, width, height)];

lblDate.text = @"Date:";
lblDate.backgroundColor = [UIColor clearColor];
[contentView addSubview:lblDate];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

紫竹語嫣☆ 2024-11-25 22:14:11

只需将框架设置为等于新的矩形,例如

lblDate.frame = CGRectMake(x,y,width,height);

Just set the frame equal to a new Rect, e.g.

lblDate.frame = CGRectMake(x,y,width,height);
自由如风 2024-11-25 22:14:11

lblDate.frame = newRect

但是您可能应该为此使用自动调整大小标志。

lblDate.frame = newRect

But you should probably be using autoresizing flags for this.

热情消退 2024-11-25 22:14:11

UIView 类参考

框架

框架矩形,描述
视图的位置和大小
超级视图的坐标系。

@property(非原子)CGRect框架
讨论 这个矩形定义了
视图的大小和位置
超级视图的坐标系。你用
布局期间的这个矩形
操作来确定尺寸和位置
看法。设置此属性会发生变化
中心指定的点
属性和边界内的大小
相应的矩形。坐标
框架矩形的总和
以点为单位指定。

警告:如果变换属性是
不是身份转换,而是价值
该属性的未定义并且
因此应该被忽略。

更改框架矩形
自动重新显示接收器
不调用drawRect:方法。
如果你想要drawRect:方法
当框架矩形时调用
更改,设置 contentMode 属性
UIViewContentModeRedraw。

对此属性的更改可以是
动画。然而,如果变换
属性包含非身份
变换,帧的值
属性未定义,不应该
被修改。在这种情况下,您可以
使用中心重新定位视图
属性并使用调整大小
相反,边界属性。

As found in the UIView class reference.

frame

The frame rectangle, which describes
the view’s location and size in its
superview’s coordinate system.

@property(nonatomic) CGRect frame
Discussion This rectangle defines the
size and position of the view in its
superview’s coordinate system. You use
this rectangle during layout
operations to size and position the
view. Setting this property changes
the point specified by the center
property and the size in the bounds
rectangle accordingly. The coordinates
of the frame rectangle are always
specified in points.

Warning: If the transform property is
not the identity transform, the value
of this property is undefined and
therefore should be ignored.

Changing the frame rectangle
automatically redisplays the receiver
without invoking the drawRect: method.
If you want the drawRect: method
invoked when the frame rectangle
changes, set the contentMode property
to UIViewContentModeRedraw.

Changes to this property can be
animated. However, if the transform
property contains a non-identity
transform, the value of the frame
property is undefined and should not
be modified. In that case, you can
reposition the view using the center
property and adjust the size using the
bounds property instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文