UIButton 创建后如何更改框架?

Posted

技术标签:

【中文标题】UIButton 创建后如何更改框架?【英文标题】:How to change the frame a UIButton after it has been created? 【发布时间】:2015-01-17 16:24:14 【问题描述】:

在我的 ViewDidLoad 中,我以编程方式创建了一个 UIButton 并为其分配标签 1。

稍后我使用代码: UIButton* otherButton = [self.view viewWithTag:1]; 现在这个按钮可以完美地与代码、改变框架等一起工作! 除了我收到警告: 从“UIView *”分配给“UIButton *”的指针类型不兼容

有没有更好的方法来找到按钮,或者我应该忽略错误?

【问题讨论】:

你问题的标题和内容无关。 【参考方案1】:

你可以直接施放它:

UIButton* myButton = (UIButton*)[self.view viewWithTag:1];`

你也可以多做一点防御性的检查:

UIView* v = [self.view viewWithTag:1];
UIButton* myButton = [v isKindOfClass: [UIButton class]] ? (UIButton*)v : nil;
NSAssert(myButton == v, @"View with tag 1 was not a UIButton");

【讨论】:

【参考方案2】:

您必须像这样将UIView 显式转换为UIButton

 UIButton* otherButton = (UIButton *)[self.view viewWithTag:1]; 

【讨论】:

以上是关于UIButton 创建后如何更改框架?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建具有清晰背景的按钮

添加子视图后UIButton无法点击

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

用户单击时如何禁用 UIButton 的突出显示

Iphone UIButton 背景颜色

UIButton框架在从一个位置移动到另一个位置后发生了变化