*修改* UIbutton 位置(Iphone SDK)

Posted

技术标签:

【中文标题】*修改* UIbutton 位置(Iphone SDK)【英文标题】:*modify* UIbutton position (Iphone SDK) 【发布时间】:2011-02-24 19:46:34 【问题描述】:

我正在玩 UIbuttons,只是为了感受一下它们真正可以做什么。到目前为止,我只有一个问题:

如何修改 UIButton 的位置?

- (IBAction)buttonClicked:(id)sender

   UIButton *senderB = sender;

   CGPoint position = senderB.frame.origin;
   CGSize size = senderB.frame.size;
   senderB.frame = CGRectMake(position.x,position.y + 10,size.width,size.height);

上面的工作很好,但是,每次我想简单地更改时创建一个新的 CGrect 对我来说似乎效率很低。

我有什么办法可以直接设置senderB.frame.origin.x等的值吗?

【问题讨论】:

【参考方案1】:

我通常这样做:

CGRect buttonFrame = button.frame;
buttonFrame.origin.y += 10;
button.frame = buttonFrame;

【讨论】:

有趣的做法!应该有帮助:)【参考方案2】:

不。请注意,“someview.frame”按值返回 CGRect,而不是按引用或指针或其他方式。这就是您收到“需要左值”错误的原因。

但是,像您这样设置框架非常快。

【讨论】:

【参考方案3】:

frame 属性是只读的。你可以做的是复制当前帧

CGRect btFrame = senderB.frame; 
btFrame.origin.x += 10;
senderB.frame = btFrame;

【讨论】:

以上是关于*修改* UIbutton 位置(Iphone SDK)的主要内容,如果未能解决你的问题,请参考以下文章

在 iphone 中按住 uibutton 时增加一个值

UIButton 在 iOS 9.3 上不显示

如何在 Iphone 中单击 UIButton 时设置 UiScrollView Frame?

如何在自动布局视图中获取 UIButton 位置

iPhone - UIButton - 禁用的背景图片

具有自定义边框颜色的 UIButton,iPhone