【问题标题】:Swift: Best way to manage UI elements, such as UIButtons? [closed]Swift:管理 UI 元素的最佳方式,例如 UIButtons? [关闭]
【发布时间】:2021-01-21 01:37:08
【问题描述】:

我是 Swift 新手。

我正在尝试为我经常使用的所有元素(例如按钮和标签)制作模板文件。

你能告诉我管理模板的最佳方式吗?这样的模板外观包括颜色、圆角半径?

除了使用类文件,我无法弄清楚。

谢谢!

【问题讨论】:

    标签: ios swift xcode uibutton label


    【解决方案1】:

    要添加到上述答案,对我有用的是将一系列按钮放入 UIButtons 数组中。在开发应用程序或适应各种屏幕时重新排列它们变得非常简单。

    这是一个由 12 个按钮组成的彩色旗帜的简化示例:

    var flagButton: [UIButton] = []
    for i in 0...11 {
    flagButton.append(UIButton())
    flagButton[i].frame = CGRect(x: x, y: y, width: width, height: height)
    self.view.addSubview(flagButton[i])
    }
    

    【讨论】:

      【解决方案2】:

      就个人而言,我喜欢使用同名类创建一个名为“样式”的新文件。 然后,在其中,我创建了接受您要编辑的参数(例如,按钮)的静态函数。

      class Styling {
         static func styleButton(_ button: UIButton) {
            button.layer.cornerRadius = 25.0
         }
      }
      

      然后我输入vc就可以调用它了:

      Styling.styleButton(myButton)
      

      【讨论】:

        【解决方案3】:

        你有两种方法可以做到。

        1 - 创建你自己的类

        final class PrimaryButton: UIButton {
        
           override func awakeFromNib() {
               super.awakeFromNib()
               backgroundColor = UIColor.red
               setTitleColor(UIColor.black, for: .normal)
           }
        }
        

        2 - 创建扩展配置

        extension UIButton {
            func style() {
                backgroundColor = R.color.primary()
                setTitleColor(R.color.black(), for: .normal)
            }
        }
        

        并在 viewDidLoad 中调用该函数

        首选第一种风格

        【讨论】:

          【解决方案4】:

          你可以像这样创建一个类:

          
          class CustomButton: UIButton {
              override func awakeFromNib() {
                  super.awakeFromNib()
                  self.layer.cornerRadius = 20
              }
          
          }
          

          并使用它:

          【讨论】:

            猜你喜欢
            • 2012-01-10
            • 2021-06-29
            • 1970-01-01
            • 2012-03-13
            • 1970-01-01
            • 2016-05-17
            • 2010-11-28
            • 2012-02-03
            • 2015-10-28
            相关资源
            最近更新 更多