view关联xib框架

h文件:

@protocol CommonViewDelegate <NSObject>
@optional
//
@end
@interface CommonView : UIView

+ (CommonView *)createViewWithDelegate:(id<CommonViewDelegate>)delegate;

@end

m文件

//
@property (assign, nonatomic) id<CommonViewDelegate>delegate;


+ (CommonView*)createViewWithDelegate:(id<CommonViewDelegate>)delegate

{
    NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CommonView" owner:self options:nil];
    if (topLevelObjects == nil || [topLevelObjects count] <= 0){
        return nil;
    }
    CommonView *view = (CommonView *)[topLevelObjects objectAtIndex:0];
    view.delegate = delegate;
    
    NSLog(@"-------1");
    return view;
}

NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CommonView" owner:self options:nil];这句会立马触发以下的方法:


-(void)awakeFromNib
{
    [super awakeFromNib];
    
    NSLog(@"---------2");
}

所以打印出来,先2后1


另外别忘了delegate是指向这个view,不是File`s Owner


还有就是,如果view 是用代码计算布局的,

记得把Autoresizing去掉,否则会冲突

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容