我制作了一个自定义的UIView对象customView
我在原型制作过程中使用的主要初始化程序是:
public init(textString: String, frame: CGRect) {
一旦我想将这个小家伙添加到IB我不知道如何让它工作。我知道,一旦我将该函数添加到Interface构建器,它就会调用:
required public init(coder aDecoder: NSCoder)
此时我很遗憾如何将我的自定义textString
传递给初始化程序
有没有这样做的过程?
答案 0 :(得分:2)
您的自定义UIView有两个init方法:
initWithFrame:frame
initWithCoder:aDecoder
您不使用这两种方法来传递textString之类的数据。相反,textString应该是您视图的属性。此属性将通过拥有自定义视图的View Controller进行初始化。
@interface CustomView : UIView
@property (strong, nonatomic) NSString *textString;
@end
然后在View Controller中设置textString属性的值,例如在viewDidLoad方法中。
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet CustomView *myCustomView;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.myCustomView.textString = @"There's my textString";
}
@end
希望这可以提供帮助。
答案 1 :(得分:1)
创建自定义视图@IBDesignable,文本属性@IBInspectable,然后您可以在storyboard / xib文件中设置文本。