如何删除背景图像到按钮

Pra*_*sad 5 iphone ipad

我在视图中添加了10个按钮(示例视图名称为"menuView"),现在我想删除第2,第3,第4个按钮的背景图像.我写了这样的代码

for(id btn in [menuView subViews]){

       [btn setBackgroundImage:nil forState:UIControlStateNormal];

 }
Run Code Online (Sandbox Code Playgroud)

这段代码的问题是,它删除了所有10个按钮的backGroundimage,但是我需要设置nil第2个,第3个和第4个按钮

Abi*_*ern 11

如果为添加的按钮创建标记,则可以对其进行过滤.

for(UIButton *btn in [menuView subViews]){
    if (btn.tag == 2 || btn.tag == 3 || btn.tag == 4) {
       [btn setBackgroundImage:nil forState:UIControlStateNormal];
    }
 }
Run Code Online (Sandbox Code Playgroud)

当然,您需要确保menuView中没有其他可以共享相同标记的视图.因此,选择是使标签变大,唯一值或检查它们实际上是UIButton.假设menuView的唯一子视图是UIButtons,我编辑了这个.枚举UIButtons不会导致编译器警告tag不成为NSObject的属性.

UIButton是其子类的UIControl子类UIView.UIView拥有该tag属性,因此UIButton继承此属性.查看正在使用的类的文档很有用,并继续使用层次结构来查看是否存在对您需要执行的操作有用的属性或方法.


Ale*_*lex 1

创建按钮时,尝试使用“tag”属性。然后,当您将背景设置为 nil 时,您可以检查 btn.tag == 2、btn.tag == 3 或 btn.tag == 4。