是重量级的,用来描述整个软件的多个界面,并且能够展示多个界面的跳转关系 加载xib xib文件在编译的后会变成nib文件 xib文件.png 第一种加载方式 NSArray * xibArray = [...xib 首先需要对xib文件进行一些处理,打开xib文件 点击"File‘s Owner",设置Class为xxxViewControler 右键"Files‘s Owner", 里面有个默认的IBOutlet...alloc]initWithNibName:nil bundle:nil]; 第一步:寻找有没有和控制器类名同名的xib,如果有就去加载(XXViewController.xib) 控制器类名同名的...xib 第二步:寻找有没有和控制器类名同名但是不带Controller的xib,如果有就去加载(XXView.xib) 和控制器类名同名但是不带Controller的xib 第三步:如果没有找到合适的...文件里有三个View) 通过加载xib方法初始化自定义控件log打印 代码实验结论: 通过代码初始化自定义控件是不会自动加载xib的,它会执行initWithFrame和init 通过加载xib
很多时候我们会使用Xib开发界面,如果是Xib创建的,我们再去每个控件都重新都设置一遍字体,岂不是无端增加工作量,最好的办法是在XIB里面设置字体大小后自动进行等比缩放。...我的思路是这样的,通过Xib创建的视图在初始化的时候都会调用awakeFromNib方法,通过交换方法,实现为Xib适配字体。
Self } } 遵守协议 import UIKit class MyView: UIView, NibLoadProtocol { } 使用 // xib文件与 类名同名 的情况 let demoView...= DemoView.loadFromNib() // xib文件与 类名不相同 的情况 let testV = TestView.loadFromNib("TestView0")
因为之前一直用纯代码写,所以没有发现新建uicollectionreusableview 的xib文件上的控件拖不了线,直到最近才发现有这个问题,刚刚开始也是挺纠结,后来想一下,拖不了线是不是因为没有关联到呢
在利用Xib开发的过程,UILabel可以直接在Xib上设置,所见即所得非常方便,但是如果颜色值需要改变就需要一个一个页面修改,非常麻烦。网上搜索了下好像没有找到很好的解决方案。...解决办法一 Xib上每个UILabel连线用代码统一设置,这样配置一个颜色值的宏,如果有变动统一修改颜色值即可,不方便的地方就是麻烦,如果界面UILabel多连线多。...- (void)initTextColor{ self.textColor = [UIColor getColorWithHexString:color_13234C]; } @end Xib...左图是Xib上设置的颜色值,右边是运行的颜色值,所以即使在Xib上设置了颜色值也不影响。最后还是变成代码设置的颜色值。 ?
简介 iOS在写视图的有的人喜欢纯代码去写,从之前的绝对定位方式(Frame),到现在的自动布局(Autolayout),但这种方式的好处是便于复制修改和装X,但是缺点是代码不容易看,不便于修改 也有人喜欢所见即所得...快速在文件树中切换到当前文件 在Xcode中经常会遇到跳转比较多的情形,有时候若跳转到某个m文件,然后又想在左边的文件目录中切换选中文件为当前打开的文件,可以用Cmd + Shift + J来操作 显示或隐藏...项目中找文件 有时候想搜索一个文件,常规的做法是鼠标点击左下角的搜索框,再输入文字,这太慢了,快捷键是:Cmd + Option + J .h和.m切换 我在.h和.m直接切换从来不用触摸板和鼠标,因为...添加第三方字体 把字体ttf文件像普通文件加入到项目中,在xib或storyboard中就可以直接使用新字体了 属性设置 但是很多属性的设置 在xib中是不能完全自定义的,作为一个喜欢用xib这种方式的码客来说...,当然能最大限度的使用xib可自定义的属性当然是极好的,下面就说一下一些不常用的从xib中可设置的属性 这些属性的设置在右面设置菜单的第三个选项卡的User Defined Runtime Attributes
今天遇到一件奇怪的事,Xcode10.2升级到10.3的时候,打开项目运行报错 报错信息 an internal error occured.Editing functionality may be limited xib
前言 目标就是方便的将xib写的视图 方便的封装成一个组件来用 代码及使用方式 OC代码 ZJXibView.h #import @interface ZJXibView...self.contentView.backgroundColor = UIColor.clear self.addSubview(self.contentView) } } 使用方法 比如我们的xib...名字为ZJUserPicView.xib 就必须建一个相同名字的类ZJUserPicView.swift并继承ZJXibView ZJUserPicView.swift import UIKit class...override func awakeFromNib() { super.awakeFromNib() } } ZJUserPicView.xib的File's Owner
需要手动勾去 stackView: 9.0之后才有,去掉stackView自己约束 wkwebview: 如果你在xib 中使用wkwebview ,那么应该去除使用纯代码,可以兼容到8.0
在iOS开发中,自定义view是很常见的事情,如果view上视图功能复杂,固然可以通过frame来计算各个空间位置来布局,不过开发时间就长了,apple为我们提供了快速开发的工具xib,今天就介绍介绍如何通过...xib来自定义view,提升开发效率。...2:创建一个xib xib的名字和第一步的名字可以相同也可以不同,为了便于维护还是建议大家吧两者的名字统一 ? ? 3:把view和xib关联起来 ?...4:在xib上创建自己的空间,并拖拽出来 ? 5:然后再view初始化中加载这个视图 ?...中加载出来的对象不是同一个对象的问题。
虽然 XIB 实现 View 有各种各样的缺点,但是不可否认我们仍然在项目中或多或少的有使用。...在加载 XIB 视图的时候每个人都会有自己的封装,今天我从最原始加载方式开始,分享一下我的便捷加载方式是怎么写出来的。...加载通过 XIB 自定义 View 的加载我们一般会有如下方法 XIBView: ZYXIBTestView.xib 在需要使用的 VC: override func viewDidLoad() {...ZYXIBTestView } 或者在XIB对应的view: ZYXIBTestView.swift 中 class func initByNib() -> ZYXIBTestView {...tableView.dequeueReusable(ZTTestCell.self, for: indexPath) ··· 此时想起了 Self 关键字 可以动态获取引用类型, 所以: extension UIView { /// 加载
的加载方式 3.2 xib与storyBoard的异同点 4.1 View的封装 4.2 UIView的常见属性和方法 5.1 搭建九宫格的步骤 5.2 代码示例 前言 案例:搭建九宫格 1、确定开发思路...2、搭建界面、编写代码 3、九宫格的布局 4、字典装模型(模型数据的处理,plist文件的加载)->实现按钮的监听方法 5、使用类方法加载xib,简化代码搭建界面 6、自定义视图,使用数据模型装配视图内容...,使用懒加载 + (NSArray *)appList; 2、使用类方法实例化视图对象,并用数据模型装配视图内容 用类方法进行视图的实例化 + (instancetype) appView;//使用类方法加载...xib + (instancetype) appViewWithAppInfo:(KNAppInfo *) appInfo;//使用类方法加载xib,参数用于视图的数据装配 1.3 九宫格计算方法...(3_0); //@property(nonatomic,strong) UIFont *font NS_DEPRECATED_IOS(2_0,
经过前两篇文章的学习,相信对组件化开发有了大致的了解,那我们这篇文章就来讲讲资源文件的加载吧 这里我新建了一个LXFMain组件库,主要是用来显示TabBar的玩意,然后再进行组件化抽离出来,其中的过程这里不再赘述...,还没了解过的同学建议先阅读下这两篇文章吧 iOS 组件化开发(一):远程私有库的基本使用 iOS 组件化开发(二):远程私有库的更新与子库 这里跟之前不一样的地方在于多了图片资源,组件的核心代码放在...成功加载 三、聊聊xib Xib的加载也是如此 NSBundle *curBundle = [NSBundle bundleForClass:self.class]; LXFCenterView *centerView...中值得一提的是,如果是直接在xib中拖入一个imageView控件来设置图片的加载,我们则需要在图片名字前加上当前bundle名称 LXFMain.bundle/个人 这里除了当前xib要加载的图片不属于...mainBundle这个原因之外,还有一点就是xib文件与bundle存放位置属于同一级别,故直接使用相对路径的方式,在图片名字前加上bundle名称即可。
Xcode 5 中 xib 文件格式的调整 Xcode 升级到 5 之后, iOS 的 xib 文件发生了变化, 导致 Xamarin Studio 中自带的 iOS ViewController 模板出错了...旧的 xib 文件的代码是这样子的: <?xml version="1.0" encoding="UTF-8" standalone="no"?...上面的 xib 文件在 MonoTouch 下运行没有任何问题。 在 Xcode 更新到 5.x 之后, 默认的 xib 文件如下: <?...不过, xib 格式升级之后问题来了, Xamarin Studio 相应生成的代码文件没变, 如下所示: public partial class NewViewController : UIViewController...最后, 只好用最古老的方法, 直接手工初始化 xib 文件, 然后返回 xib 对象数组里面的 ViewController : public static NewViewController Create
Label加载富文本 func getHtml(){ guard let filePath = Bundle.main.path(forResource: "demo", ofType: "html...self.htmlLabel.attributedText = attrStr }catch{ print(error.localizedDescription) } } 允许进行HTTP请求 加载网络图片...或者直接添加一下配置 NSAppTransportSecurity NSAllowsArbitraryLoads 注意点 加载图片的大小...不是按手机的像素尺寸 而是手机的尺寸(比如width:414px就是最大的宽度) 图片无法添加点击操作 链接无法点击 猿题库作者的实现方式 iOS 开发进阶
用了Flutter之后感觉最方便的就是热加载,修改后点击热加载后马上就可以看效果,为什么Xcode反而不能,如果页面层级很深重新启动加上页面跳转很浪费时间。...不过搜索一下幸好还有injectionIII iOS代码注入工具,Apps Store搜索,下载安装好之后,OpenProject选择项目的根目录就可以了。 ?...意思就是您的项目文件似乎位于Desktop或Documents文件夹中,并且由于具有特殊权限,因此可能阻止InjectionIII工作。...寄语 真希望苹果在Xcode中加入热加载功能,好歹人家Flutter都有了。
通俗一点就是用到时再加载,而且只加载一次,其实就是所谓的重写对象的get方法,当系统或者开发者调用对象的get方法时,再去加载对象。...实现: 重写get方法时,先判断对象当前是否为空,为空的话再去实例化对象 使用懒加载的好处: 不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 每个控件的getter方法中分别负责各自的实例化处理...:[[NSBundle mainBundle] pathForResource:@"list" ofType:@"plist"]]; } return _list; } @end 在懒加载中需要注意点语法和使用
中使用 png 图片 例如: MyImage@2x.png - 2x 显示屏自动加载的图片版本 MyImage@3x.png - 3x 显示屏自动加载的图片版本 MyImage@2x~iphone.png...- 2x iPhone 和 iPod touch 显示屏自动加载的图片版本 MyImage@3x~iphone.png - 3x iPhone and iPod 显示屏自动加载的图片版本 设计和开发之间的多屏适配问题...,项目也方便多人一起开发,改动视图方便,不用全局改动 StoryBoard:StoryBoard是一个包含了多个xib的文件,管理方便,在StoryBoard中不仅可以看到每个 ViewController...的布局样式,也可以知道各个ViewController之间的转换关系 区别 项目大的话,xib文件过多,不容易统一管理。...,容易造成冲突,造成冲突后难以解决,容易产生不必要的commit 性能上,xib加载慢,打开速度也慢,而且会占用app包的体积 代码优缺点 灵活,方便,所有的属性都可以通过代码来控制,简单来说,xib
引言 本文为 iOS视图约束专题的第三篇:xib上使用自动布局教程 第一篇:【1、Masonry以动画的形式更新约束 2、利用dividedBy进行九宫格布局3、Masonry约束宽高比的例子demo】...商品详情页】(原理:按照图片的原宽高比例进行显示图片全部内容,并自动适应高度) https://blog.csdn.net/z929118967/article/details/112976838 第三篇:iOS...xib 自动布局例子: 自动布局实现兄弟控件N等分 且宽高比例是1:N(xib 上实现) https://blog.csdn.net/z929118967/article/details/77742703...II、iOS 父子控件的高度成一定比例关系的实现 ---- 例子:这种情况通常运用于 父亲控件的高度依赖于子控件的高度 ?...xib 自动布局例子: 自动布局实现兄弟控件N等分 且宽高比例是1:N(xib 上实现) https://blog.csdn.net/z929118967/article/details/77742703
xcode7没有Frameworks文件夹,xcode7内部会自动帮你导入一些常见的框架. xcode7多了LaunchScreen.xib,LaunchScreen.xib设置启动界面,而且可以确定模拟器或者真机的真实尺寸...加载info.plist.加载配置文件.判断一下info.plist文件当中有没有Main storyboard file base name,里面有没有指定storyboard文件,如果有就去加载info.plist...如果没有跟它相同名称的Xib,那么它就会再去加载跟它相同名称去点Controller的名字的Xib....如果不是从StoryBoard当中加载的, 那么它还会判断是不是从Xib当中创建的控制器.如果是,那么它就会从xib加载控制器的View....步骤: 定义协议 定义代理属性 在.m文件当中调用代理方法 设置代理 遵守协议 实现协议方法 23.ios当中存储方式有哪些?
领取专属 10元无门槛券
手把手带您无忧上云