美文网首页
通过xib自定义view

通过xib自定义view

作者: 牵着蜗牛散步Zz | 来源:发表于2017-03-25 22:48 被阅读0次

步骤:

1、先新建自定义view文件

1.0

2、新建view文件

2.0

3、设置File's Owner与View的class(如下图3.1),注意这里两个都要设置,如果只设置View的class,后面会出现无法响应点击事件与设置代理等等,基本只能展示静态的界面。

3.0 3.1

4、在.h文件中写好了变量、IBAction、delegate等之后接下来就要在File's Owner中也对应拖拽上这些变量(如下图4.0)。之前我由于只设置了View中的这些变量,导致View怎么都不响应IBAction和delegate,我在代码中设置的动态改变Constraint也不起作用。为什么会这样后面的代码会做说明。

4.0

5、在.m文件中实现初始化代码

- (id)initWithFrame:(CGRect)frame {

self= [superinitWithFrame:frame];

if(self) {

return[selfbaseInit];

}

returnself;

}

- (UIEnterAlertView*)baseInit {

CGRectframe =self.frame;

frame.size.width=MAIN_SCREEN_SIZE.width;

frame.size.height=MAIN_SCREEN_SIZE.height;

[selfsetFrame:frame];

UIEnterAlertView*view =nil;

NSArray*objects = [[NSBundlemainBundle]loadNibNamed:@"UIEnterAlertView"owner:selfoptions:nil];

for(idobjectinobjects) {

if([objectisKindOfClass:[UIEnterAlertViewclass]]) {

view = object;

break;

}

}

[selfaddSubview:view];

[selfaddChangeValueNotification];

returnself;

}

- (void)layoutSubviews {

CGRectframe =self.frame;

frame.size.width=MAIN_SCREEN_SIZE.width;

frame.size.height=MAIN_SCREEN_SIZE.height;

[selfsetFrame:frame];

}

基本上初始化的代码就是这部分,之前没有在File's Owner中设置变量的时候,IBAction、delegate没有响应的原因是NSArray*objects = [[NSBundlemainBundle]loadNibNamed:@"UIEnterAlertView"owner:selfoptions:nil];这段代码相当于重新生成了一个对象,这个对象与本生的self是两个不同的对象,而且两者没有关联,于是IBAction、delegate等变量作用在了不同的对象时,根本不会响应事件。

相关文章

  • UIView

    view的封装 Xib和storyboard对比 Xib的加载 使用xib自定义view的步骤 l新建自定义控件类...

  • 自定义View的创建、添加、移除执行过程分析

    1.创建自定义view的类文件 2.创建一个xib文件来表述自定义view(也可以通过代码) 创建一个xib文件创...

  • UI-Xib

    Xib的加载 方法1 方法2 自定义控件view的步骤 新建自定义控件类 修改xib中view的类名 封装xib的...

  • iOS中xib与storyboard各种加载

    xib 加载自定义View xib 加载自定义控制器 storyboard 加载自定义控制器 xib 加载自定义cell

  • loadView 的作用?

    loadView用来自定义view,只要实现了这个方法,其他通过xib或storyboard创 建的view都不会...

  • 觅食邦 开发总结

    XIB 加载要点 通过xib加载view会调用- (void)awakeFromNib方法 xib加载view,点...

  • 通过xib自定义view

    步骤: 1、先新建自定义view文件 2、新建view文件 3、设置File's Owner与View的class...

  • xib自定义,高度减少64

    解决在导航栏不透明的情况下,自定义xib view高度被压缩64的问题 在使用xib自定义view的时候,个人习惯...

  • Failed to set user defined inspe

    Log: 原因 :使用自定义的 view 时,为 view 设置了 IBInspectable 属性,在 xib ...

  • Storyboard加载控制器、xib加载控制器View

    1、通过Storyboard加载控制器 2、通过Xib加载控制器的View 通过Xib加载控制器的View步骤: ...

网友评论

      本文标题:通过xib自定义view

      本文链接:https://www.haomeiwen.com/subject/mehhottx.html