【问题标题】:Xcode how to combine UI buttons?Xcode如何组合UI按钮?
【发布时间】:2016-12-30 07:37:15
【问题描述】:

我正在制作自定义键盘并想为按钮添加阴影。 所以在 viewDidLoad() 中添加了一些代码(keys.layer~~)

但我不能将多个按钮设置为一个 IBOutlet
我想要的是所有键都有“键(IBOutlet)”作为值(?) 可能吗?如果不是,其他任何事情都很好:) 帮助!

这是我的代码(请忽略下一个键盘按钮)

@IBAction func keys(sender: AnyObject) {

}

@IBOutlet weak var keys: UIButton!

@IBOutlet var nextKeyboardButton: UIButton!

override func updateViewConstraints() {
    super.updateViewConstraints()

    // Add custom view sizing constraints here
}

override func viewDidLoad() {
    super.viewDidLoad()

    loadInterface()
    keys.layer.cornerRadius = 4.0;
    keys.layer.shadowColor = UIColor.blackColor().CGColor
    keys.layer.shadowOffset = CGSizeMake(0.0, 2.0)
    keys.layer.masksToBounds = false
    keys.layer.shadowRadius = 1.0
    keys.layer.shadowOpacity = 0.5

【问题讨论】:

  • 试试this..它可能会有所帮助
  • 不可能将一个 IBOutlet 分配给多个接口对象。这是一个唯一的标识符是有原因的。在您的情况下,我建议创建一个适合您需求的 UIButton 子类。
  • @Gokul 感谢它神奇地起作用了!
  • @MauriceA。谢谢!
  • 您可以将多个按钮从 IB 分配给 UIButton 类型的 IBOutletCollection。然后在循环中你可以全部修改它们。

标签: ios swift xcode keyboard


【解决方案1】:

您可以像这样制作UIButton 扩展名,并与您的自定义键盘Button 的所有对象一起使用

extension UIButton {

    func setShadow() {
        self.layer.cornerRadius = 4.0;
        self.layer.shadowColor = UIColor.blackColor().CGColor
        self.layer.shadowOffset = CGSizeMake(0.0, 2.0)
        self.layer.masksToBounds = false
        self.layer.shadowRadius = 1.0
        self.layer.shadowOpacity = 0.5
    }
}

现在你可以像这样用你的按钮对象调用这个方法

self.nextKeyboardButton.setShadow()

编辑:

如果您想使用相同的对象访问多个Button 对象,您可以创建UIButtonArray,并将所有Outlet Button 存储在该数组中。

var buttonArray = [UIButton]()

【讨论】:

  • 你能解释更多吗?我应该在哪里添加这些代码?
  • 你可以在你当前的viewController文件中声明这个扩展,但是在class定义之外,而不是class里面。
  • 不幸的是,我无法调整您的答案:c 我是个很快的新手,所以需要非常深入的解释;-;
  • 但是谢谢!试图提供帮助:) 当我习惯更多地使用 swift 时,我会再试一次 :))!!
  • 你在objective c工作过吗,在objective c你可以创建category,在swift extension中相当于objective c的category。
猜你喜欢
  • 2015-11-01
  • 2016-11-06
  • 1970-01-01
  • 2017-10-19
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2022-11-16
  • 1970-01-01
相关资源
最近更新 更多