2016-09-26 176 views
1

用XIB1創建的UIView我想創建一個自定義視圖用XIB1, 所以,我沒有CreateTask.xib包含一個TextField 和類是CustomUIView:UIView的斯威夫特

我遵循 http://swiftdeveloperblog.com/creating-custom-user-interface-files-with-xib-in-xcode-6-and-swift/

這一步

 
import UIKit

class CreateTaskView: UIView {

@IBOutlet weak var taskNameField: UITextField! var nibView: UIView! var taskName: String? { get { if taskNameField == nil { return "taskNameField is nil" } if let s = taskNameField.text { return s } else { return "" } } } override init(frame: CGRect) { super.init(frame: frame) setup() } required init?(coder aDecoder: NSCoder) { print("infinite loop") super.init(coder: aDecoder) setup() } func setup() { nibView = loadViewFromNib() nibView.frame = bounds nibView.autoresizingMask = [UIViewAutoresizing.flexibleWidth ,UIViewAutoresizing.flexibleHeight] addSubview(nibView) } func loadViewFromNib() -> UIView { let nib = UINib(nibName: "CreateTask", bundle: nil) let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView return view }

} 當我實例CreateTaskView,即CreateTaskView由loadViewFromNib創建無限

() ,我想這可能是「xib類是CustomUIView」的原因,所以我把它拿出來了。

但我無法在xib中獲得UITextField插座,我該怎麼辦?

回答

1

從類本身創建nib並不是一個好主意,而是創建customview實例的類應該使用它的nib文件加載視圖。一個Objective-C例如:

CustomView *myView = (CustomView *)[[[NSBundle mainBundle] loadNibNamed:@"CustomViewXIB" owner:nil options:nil] firstObject]; 

它將通過使用其相應的XIB文件創建CustomView類的實例。

0
  1. 轉到CreateTask.xib和挖掘文件的所有者選項卡
  2. 由攻Identity Inspector設定的廈門國際銀行的所有者和設置自定義類作爲CreateTaskView
  3. 然後嘗試創建文本框的出口CreateTaskView