ios - 如何从这个应用程序复制UIButton选择的设计和 Action ?

标签 ios swift uibutton

我当前正在使用一个应用程序,并且正在尝试复制应用程序中发生的操作。
下面是一个例子:
enter image description here
如您所见,当我的手指位于选定的“UIButton”(至少我认为是这样)上时,背景图像将亮显。在不松开手指的情况下,滚动不同的选项会突出显示特定的UIButton
我相信每个都是一个没有文本标签的UIButton,他们刚刚为每个UILabel添加了一个UIButton
我也做过类似的事情:
enter image description here
然而,我不明白的是他们是如何在每个选择之间突出显示背景的。
它看起来像是UIControlEvents.TouchDownUIControlEvents.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/

相关文章:

ios - UIScrollView 在 customView 中不滚动

ios - 如何转到导致 xcode 错误的行

swift - 什么替换了 Xcode 6.3 中的 "main.m"文件

ios - UIButton 标题标签延迟

ios - 如何将角标(Badge)添加到 UIButton

ios - 访问按钮标题给出了错误的值

ios - Xcode 中的 Stack Trace 有什么意义?

swift - 如何使用 Xcode 6 内联代码文档 Swift 源代码

ios - 无法将类型 'x' 的值转换为预期的参数类型 '[String : Any]'

ios - 使用未知数量的 View (Swift)