网上有很多关于实现用xib自定义View,那我为什么还要写呢?第一,我用他们的方法都没有实现。第二,用xib遇到了很多问题,想分享给大家。

用xib自定义View:FHCustomView

1.新建UIView



2.建一个同名xib : FHCustomView.xib



3.配置FHCustomView.xib



注意:(1)只需要配置View ->Class 为FHCustomView就可以了,以前我把File’s Ower ->Class也配置为FHCustomView了,结果在iOS7中闪退,按钮的点击的方法报unrecognized selector sent to instance 0x1741df770错误,闪退。不用配置File‘s Ower ->Class!

4.重写initWithFrame方法

FHCustomView.m

#import "FHCustomView.h"

@implementation FHCustomView

- (instancetype)initWithFrame:(CGRect)frame {

    self = [super initWithFrame:frame];
self = [[[NSBundle mainBundle] loadNibNamed:@"FHCustomView" owner:self options:nil] lastObject];
if (self) {
self.frame = frame;
}
return self;
}
@end

  到这里,用xib自定义View就结束了,是不是感觉很简单。确实很简单,但是我也踩过很多坑。如果配置File’s Ower ->Class,在iOS9、iOS10中都没问题,但是iOS7就会闪退。由于一开始没有iOS7的测试机,我一直没办法定位到问题出现在哪里。个人建议昂,如果刚开始接触iOS开发,最好别用xib。虽然上手容易,不过还是有很多坑,出了问题不好定位,而且只要出问题就是闪退,容错率太低,用户体验不好。

最新文章

  1. Xamarin.Android活动的生命周期
  2. win10进入安全模式的方法(F8不管用/开不开机)
  3. jsp页面往mysql里插入中文后数据库里显示乱码
  4. BMP文件格式分析
  5. 数据挖掘10大算法(1)——PageRank
  6. 沈逸老师ubuntu速学笔记(1)--安装flashplayer,配置中文输入法以及常用命令
  7. 获取XML配置数据
  8. OA学习笔记-006-SPRING2.5与hibernate3.5整合
  9. 开源跨平台的3D渲染软件
  10. 上海游侠电动汽车团队招募。iOS,Android,产品经理以及 SEVER 端工程师 - V2EX
  11. 将已有的工程项目添加到Xcode到Git管理中
  12. CentOS 6.5 开机启动指定服务
  13. vue关于class和样式的使用
  14. log4j 和slf4j的比较
  15. --------------Hibernate学习(四) 多对一映射 和 一对多映射
  16. LIS的优化算法O(n log n)
  17. Python Flask Restful
  18. Windows 下配置 Apache 支持 https
  19. 记录一次向TiDB数据库导入数据的例子
  20. 反向路径过滤——reverse path filter

热门文章

  1. hdu3094 A tree game
  2. 关于JVM内存模型,GC策略以及类加载器的思考
  3. 利用RestTemplate进行http调用
  4. (16) Cloudflare pki公钥基础设施
  5. 二手GTX650
  6. 几个非常实用的JQuery代码片段
  7. NowCoder小杰的签到题(模拟,思维)
  8. Dev Express中Dock panel的使用
  9. oracle自增序列创建
  10. MyEclipse 6.5安装maven插件