我当前正在使用一个应用程序,并且正在尝试复制应用程序中发生的操作。
下面是一个例子:
如您所见,当我的手指位于选定的“UIButton
”(至少我认为是这样)上时,背景图像将亮显。在不松开手指的情况下,滚动不同的选项会突出显示特定的UIButton
。
我相信每个都是一个没有文本标签的UIButton
,他们刚刚为每个UILabel
添加了一个UIButton
。
我也做过类似的事情:
然而,我不明白的是他们是如何在每个选择之间突出显示背景的。
它看起来像是UIControlEvents.TouchDown
和UIControlEvents.TouchUpInside
的组合。
我编了一些类似的代码:
cameraButton.addTarget(self, action: #selector(AddClothesViewController.selectCameraOptions(_:)), forControlEvents: .TouchUpInside)
cameraButton.addTarget(self, action: #selector(AddClothesViewController.selectCameraOptionsHighlighted(_:)), forControlEvents: .TouchDown)
func selectCameraOptionsHighlighted(button: UIButton)
{
if button == cameraButton
{
print("GO HERE")
cameraButton.setImage(UIImage(named: "highlighted background"), forState: .Normal)
}
}
func selectCameraOptions(button: UIButton)
{
if button == cameraButton
{
// DO STUFF
}
}
但是这种方法不起作用,因为如果我执行
.TouchDown
,相机选项就会消失。如果我只是为.TouchUpInside
添加一个目标,这显然也不起作用,因为它只在我松开手指时高亮显示,到那时,它已经将我带到另一个视图,即相机或照片库。如何实现这一目标的最佳方法是什么?
谢谢。
最佳答案
您可以使用actionsheet或alterviewcontroller,就像前面提到的那样,但是如果您希望按钮像这样工作,请为highlitedstate添加不同的uicolor。
一旦您触摸按钮,按钮将其状态更改为突出显示。所以你需要在触摸时改变uibutton的背景色。
请参阅this答案以更改突出显示的状态颜色。
关于ios - 如何从这个应用程序复制UIButton选择的设计和 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37268933/