如何更改视图中每个 UIButton 的框架

Posted

技术标签:

【中文标题】如何更改视图中每个 UIButton 的框架【英文标题】:How to change frame for each UIButton in view 【发布时间】:2010-12-11 20:23:11 【问题描述】:

当设备的方向更新时,我正在尝试更新分配的 UIButton 的每一帧。现在我有一个 for 循环,它应该检查视图中的每个 UIButton 并更新 UIButton 的框架。 for 循环不起作用,谁能告诉我为什么?

提前致谢!

for(UIView* view in theTable.subviews) 
    if([view isMemberOfClass:[UIButton class]]) 
        NSLog(@"UIButton found");
        view.frame = CGRectMake(430, 10, 23, 24);
    

【问题讨论】:

【参考方案1】:

尝试在更改框架后调用[view setNeedsDisplay];。来自文档:

您可以使用此方法或 setNeedsDisplayInRect: 通知 您的视图内容所需的系统 要重绘。这种方法使 请求和返回的注释 立即地。观点实际上并不 重绘直到下一个绘图周期, 此时所有无效的视图 已更新。

【讨论】:

以上是关于如何更改视图中每个 UIButton 的框架的主要内容,如果未能解决你的问题,请参考以下文章

限制在超级视图中水平和垂直居中阻止我更改框架

在 Swift 中按下 uibutton 时更改色调图像颜色

UIButton 创建后如何更改框架?

UICollectionViewCell 中的 UIButton 子视图不更改控件状态

如何在 UICollection 补充视图中使用 UIButton?

使用 AutoLayout 调整框架大小