UIButton默认点击UITableViewController自定义单元格中缺少的淡入淡出动画

时间:2013-12-10 08:26:00

标签: ios iphone objective-c uitableview uibutton

我有一个自定义单元格,里面有几个UIButtons。我在按钮上创建了目标操作:

[cell.customLocationButton addTarget:self action:@selector(customLocationButtonTap:) forControlEvents:UIControlEventTouchUpInside];

虽然我没有在UIButtons上看到默认的iOS淡入淡出动画,但这些动作效果很好?是否有我需要启用的东西 - 我认为在使用IB的UIButton时它们是标准的?

6 个答案:

答案 0 :(得分:4)

有同样的问题。我可以通过setTitleColor:forState:使用按钮更改突出显示的颜色,但它不会像其他系统按钮一样从高亮显示恢复到正常状态。

原来那是因为我的按钮属于UIButtonTypeCustom类型。将其切换为UIButtonTypeSystem为我解决了这个问题。请注意我在iOS9上运行它。

以下是假设selfUIView或子类的代码段( Swift ):

let button = UIButton(type: .System)
button.setTitle("Title", forState: .Normal)
button.sizeToFit() // Sizes the button frame based on the title.
addSubview(button)

答案 1 :(得分:2)

我一直在网上搜索,最后我发现StackOverFlow上的帖子找到了解决方案here

对于Swift 4您可以添加此UIButton扩展名,它可以正常工作。

extension UIButton {

    override open func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        isHighlighted = true
        super.touchesBegan(touches, with: event)
    }

    override open func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        isHighlighted = false
        super.touchesEnded(touches, with: event)
    }

    override open func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
        isHighlighted = false
        super.touchesCancelled(touches, with: event)
    }

}

答案 2 :(得分:1)

你可以做的另一件事是:

<强>夫特:

button.showsTouchWhenHighlighted = true
button.setTitleColor(UIColor.blueColor(), forState: .Normal)
button.setTitleColor(UIColor.lightGrayColor(), forState: .Selected)

答案 3 :(得分:1)

我找到了这个解决方案:

setTitleColor(UIColor.init(white: 1, alpha: 0.3), for: .highlighted)

这真的很简单,而且效果很好。

答案 4 :(得分:0)

在您的XIB内部属性检查器中选择您的按钮,然后在内部按钮类型中,您将获得关注选项,您可以相应地选择和更改您的按钮外观: -

enter image description here

答案 5 :(得分:0)

您可能是这样初始化按钮的:

let button = UIButton.init(frame: CGRect.init(x: 0, y: 0, width: <width>, height: <height>)

尝试这样做:

let button = UIButton.init(type: .system)
button.frame = CGRect.init(x: 0, y: 0, width: <width>, height: <height>)

点击后的“淡入淡出”动画具有系统样式,在点击按钮后,您可以对其进行自定义。