簡體   English   中英

在Xib中以編程方式自定義UIView

[英]programmatically customize UIView in xib

我已經使用UIView創建了Xib文件,然后創建了一個連接到xibs文件所有者的自定義UIView類。 但是我不確定如何以編程方式創建一些東西。 我試圖添加awakeFromNib函數,但是似乎無法正常運行,為了以編程方式更改backgroundColor應該采用哪種方法?

func loadViewFromNib() -> UIView {

    let bundle = NSBundle(forClass: self.dynamicType)
    let nib = UINib(nibName: "MediaPlayer", bundle: bundle)
    let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView

    return view
}

您可以更改任何此類的backgroundColor。

self.view.backgroundColor = [UIColor redColor];

希望這可以幫助。

僅當這樣調用UINib才會調用awakeFromNibhttps : UINib

  1. 創建您的自定義視圖.xib文件
  2. 創建UIView的.swift文件子類
  3. 將文件的所有者設置為您的子類

設置文件所有者

  1. 將文件的視圖拖到.swift文件中,並將其命名為contentView

連接IBOutlet

您的UIView子類應如下所示:

class CustomView : UIView {


  @IBOutlet weak var contentView: UIView!



  override init(frame: CGRect) {
    super.init(frame: frame)
    setup()
  }

  override func awakeFromNib() {
    super.awakeFromNib()
    setup()
  }

  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
  }

  func setup() {
    Bundle(for: CustomView.self).loadNibNamed(String(describing: CustomView.self), owner: self, options: nil)
  }
}
  1. 現在,您可以直接在Interface Builder中使用子類

Interface Builder中的自定義視圖

  1. 或以編程方式

以編程方式自定義視圖

let view = CustomView()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM