2012-04-03 117 views
0

这可能吗?它似乎以次充好。在Interface Builder中使用UIButton创建自定义切换

我想在IB中创建一个切换按钮(不是UISwitch)。例如,静音按钮在静音时会指示声音被禁用,当您按下该按钮时,该指示器消失(但仍然是相同的底层图形),并在每次按下时在这些状态之间切换。

这个功能可以通过使用selected属性来实现,但是你不能像在代码中那样改变IB中的Selected和Highlighted属性,所以无论按下按钮,无论状态如何,突出显示的图像都是同样,这看起来很可怕并且很糟糕。

有没有办法解决这个问题,只是IB,还是我必须做一个自定义类,以避免手动加载所有这些按钮?

回答

0

你有没有想过子类化UIButton添加你需要的东西?

+0

可以在代码中用普通的UIButton来完成它;是的,我已经考虑过对它进行子类化,并且只是添加了一些代码来自动检测并在初始化时设置Selected/Highlighted状态,但如果我不必这样做,会更好。但是如果我必须走这条路线,我不确定要重写什么,它只是-initWithFrame:? – user1137704 2012-04-03 21:09:10

+0

例如,您可以执行setImage:@“image”forState :(UIControlStateHighlighted | UIControlStateSelected)',这可以解决这个问题,但在IB中似乎没有等价物。子类唯一的问题是认识到应该是什么值。 – user1137704 2012-04-03 21:16:59

相关问题