xcode 8自定义XIB自定义UIview

在工作的过程中发现Xcode8无法创建带.h和.m文件对的xib 因为xib布局简单  所以我决定还是采用xib  我直接创建了一个xib然后创建了一个文件对进行关联 在实际操作过程中还是有一些小问题 比如view中的控件调用 现将主体代码附上  有什么疑问可以询问
YellowView.h/m
@interface YellowView : UIView
+ (instancetype)viewFromNIB;
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@end
@implementation YellowView
// Convenience Method
+ (instancetype)viewFromNIB {
    // 加载xib中的视图,其中xib文件名和本类类名必须一致
    // 这个xib文件的File's Owner必须为空
    // 这个xib文件必须只拥有一个视图,并且该视图的class为本类
    NSArray *views = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil];
    return views[0];
}
- (void)awakeFromNib {
    // 视图内容布局
    self.backgroundColor = [UIColor yellowColor];
    self.titleLabel.textColor = [UIColor whiteColor];
}
@end
MainViewController.m
...
@property (strong, nonatomic) YellowView *yellowView;
...
- (void)loadYellowViewFromXIB {
    // 说明见YellowView.m的viewFromNIB方法
    self.yellowView = [YellowView viewFromNIB];
     
    CGRect rect = _yellowView.frame;
    UIView *redView = _redViewOwner.redView;
    rect.origin.x = redView.frame.origin.x;
    rect.origin.y = redView.frame.origin.y + 80.0f;
    _yellowView.frame = rect;
    [self.view addSubview:_yellowView];
}



猜你喜欢

转载自blog.csdn.net/larryluoshuai/article/details/71129696