【问题标题】:How do I adjust the transparency (alpha) of a button in Swift?如何在 Swift 中调整按钮的透明度(alpha)?
【发布时间】:2017-11-10 13:25:37
【问题描述】:

我的按钮是flButton,但是当我尝试将alpha 设置为0 时,它给了我错误

Value of type '(Any) -> () 没有成员 alpha"。

我必须在@IBAction 行中替换Any 吗?

import UIKit

class FirstLaunchView: UIViewController {

    @IBOutlet weak var logo1: UIImageView!
    @IBOutlet weak var smiley1: UIImageView!
    @IBOutlet weak var subHapp1: UILabel!
    @IBOutlet weak var happ1: UILabel!
    @IBAction func flButton(_ sender: Any) {

        UserDefaults.standard.set(false, forKey: "name")
        //launchDetector = false

        performSegue(withIdentifier: "toMain", sender: self)
    }

    @IBOutlet weak var firstLaunch: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        logo1.alpha = 0
        smiley1.alpha = 0
        subHapp1.alpha = 0
        happ1.alpha = 0
        flButton.alpha = 0         
    }

【问题讨论】:

    标签: ios swift swift3 uibutton alpha


    【解决方案1】:

    您的flButton@IBAction function。您应该为您的按钮创建一个@IBOutlet,或者如果您想保留它,请在您的function 中执行此操作:

    if let button = sender as? UIButton {
        button.alpha = 0
    }
    

    或者您可以将 @IBAction function 的类型更改为:

    @IBAction func flButton(_ sender: Any)
    

    收件人:

    @IBAction func flButton(_ sender: UIButton)
    

    然后设置sender.alpha = 0

    【讨论】:

    • 其实把Any改成UIButton也是一个可行的方案。
    • @Sulthan,这是真的,您甚至不必重新绘制 @IBAction 不知道您不必这样做。已将其添加为替代方案,谢谢。
    • action的参数其实是可选的,你也可以使用flButton(),使用IBOutlet访问按钮。这来自于 Objective-C 的动态性。选择器不包含类型。如果按钮类型不同,则为多个按钮重用一个 IBAction 可能不是一个好习惯。
    【解决方案2】:

    最简单的方法就是Rashwan L建议的,像logo1,smiley1这样创建一个outlet。

    @IBOutlet weak var flButton: UIButton!
    

    之后,您可以通过以下方式轻松更改颜色

    flButton.alpha = 0
    

    【讨论】:

      猜你喜欢
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 2010-12-09
      • 2020-10-31
      • 2013-10-28
      • 1970-01-01
      相关资源
      最近更新 更多