简介 iOS在写视图的有的人喜欢纯代码去写,从之前的绝对定位方式(Frame),到现在的自动布局(Autolayout),但这种方式的好处是便于复制修改和装X,但是缺点是代码不容易看,不便于修改 也有人喜欢所见即所得...添加AutoLayout边距约束时如何不使用margin约束 通常我习惯于在xib或者StoryBoard中用右键drag拖线的方式设置autolayout约束,但是默认的autolayout边距约束可能是带...添加第三方字体 把字体ttf文件像普通文件加入到项目中,在xib或storyboard中就可以直接使用新字体了 属性设置 但是很多属性的设置 在xib中是不能完全自定义的,作为一个喜欢用xib这种方式的码客来说...,当然能最大限度的使用xib可自定义的属性当然是极好的,下面就说一下一些不常用的从xib中可设置的属性 这些属性的设置在右面设置菜单的第三个选项卡的User Defined Runtime Attributes...Xcode 6以上支持一种新的方法,特好用 其实就是为UIView添加扩展 或 继承 添加IBInspectable的属性 既可以图形化设置某些属性 这样在右侧的第四个选项卡中神奇的出现了自定义的设置项
很多时候我们会使用Xib开发界面,如果是Xib创建的,我们再去每个控件都重新都设置一遍字体,岂不是无端增加工作量,最好的办法是在XIB里面设置字体大小后自动进行等比缩放。...我的思路是这样的,通过Xib创建的视图在初始化的时候都会调用awakeFromNib方法,通过交换方法,实现为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...override func awakeFromNib() { super.awakeFromNib() } } ZJUserPicView.xib的File's Owner...的Class指定为ZJUserPicView.swift 然后连接picImageView和nameLabel 这样ZJUserPicView就可以整体做一个组件来用了 完整示例 Swift示例 ObjectC
是重量级的,用来描述整个软件的多个界面,并且能够展示多个界面的跳转关系 加载xib xib文件在编译的后会变成nib文件 xib文件.png 第一种加载方式 NSArray * xibArray = [...) 控制器类名同名的xib 第二步:寻找有没有和控制器类名同名但是不带Controller的xib,如果有就去加载(XXView.xib) 和控制器类名同名但是不带Controller的xib...第三步:如果没有找到合适的xib,就会创建一个View(白色View,为系统自己创建的) xib自定义控件与代码自定义的区别 这是自定义的一个View,我们通过不同的初始化方式去判断它的执行方法 #import...初始化自定义控件,仅仅执行 initWithCoder 和awakeFromNib,如果要通过代码修改xib的内容,一般建议放在awakeFromNib方法内 控件封装 一般封装一个控件,为了让开发者方便使用...,通常会在自定义的控件中编写俩个方法初始化方法,这样不管是通过init还是加载xib都可以实现相同的效果 #import "CustomViw.h" @implementation CustomViw
的用法 1.7 @property 2.1 字典转模型的实现步骤 2.2 字典转模型的过程 3.1xib 的加载方式 3.2 xib与storyBoard的异同点 4.1 View的封装 4.2...文件的加载)->实现按钮的监听方法 5、使用类方法加载xib,简化代码搭建界面 6、自定义视图,使用数据模型装配视图内容 若一个view的内部子控件比较多,通常会考虑自定义一个view 把内部的子控件创建屏蔽起来...CGFloat is not a class, it is a typedef for double (a basic type). 1.5 instancetype简介 OC中,在IOS7之后主推...,让编译器主动推动对象的实际类型,以避免使用ID,造成开发中不必要的麻烦 1.instancetype 只能使用于返回值类型,不能像id一样用于参数类型;但instancetype比id多的一个好处是:...of type 'KNAppInfo *'),以避免使用ID造成开发中不必要的麻烦 2.Init方法应该遵循Apple生成代码模板的命名规则,返回类型应该使用instancetype而不是id。
因为之前一直用纯代码写,所以没有发现新建uicollectionreusableview 的xib文件上的控件拖不了线,直到最近才发现有这个问题,刚刚开始也是挺纠结,后来想一下,拖不了线是不是因为没有关联到呢
在利用Xib开发的过程,UILabel可以直接在Xib上设置,所见即所得非常方便,但是如果颜色值需要改变就需要一个一个页面修改,非常麻烦。网上搜索了下好像没有找到很好的解决方案。...解决办法一 Xib上每个UILabel连线用代码统一设置,这样配置一个颜色值的宏,如果有变动统一修改颜色值即可,不方便的地方就是麻烦,如果界面UILabel多连线多。...左图是Xib上设置的颜色值,右边是运行的颜色值,所以即使在Xib上设置了颜色值也不影响。最后还是变成代码设置的颜色值。 ?...截屏2021-07-15 09.54.20.png 解决办法3 直接在Assets.xcassets 设置颜色值 image.png 截屏2021-07-19 10.59.52.png 使用的时候直接选择更方便...个人感觉解决办法3比较好用,所见即所得很直观的看到颜色。 如果有其他好的解决办法烦请告知一下。
今天遇到一件奇怪的事,Xcode10.2升级到10.3的时候,打开项目运行报错 报错信息 an internal error occured.Editing functionality may be limited...xib 变成了这个样子 ?...image.png 网上找的解决办法 1.Xcode-->product-->clean:command+shift+k 2.command+Q 完全退出Xcode 3.重启即可复原 日了狗了,经过以上步骤依然没有解决问题
made in 小蠢驴的配图 说起iOS开发,很多人的印象就是-弄一个tableView,把数据全丢到上面展示,听起来好像很粗糙,不过仔细一想,确实展示数据内容的,用的tableView是最多的了吧...本文的主题是--tableViewCell的高度自适应,计算cell高度的方法确实有好几种,因为做cell的时候,比较简单的界面我都是直接拉xib,手动连接约束比较省事,所以今天就来探索一波-- 使用xib...所以并不会换行 xib的约束展示 如图,我们知道label只要设置两条约束,宽和高都可以自动实现内容的自适应,但是,这里如果不设置宽(添加右侧约束 == 确定 宽),label的宽会无限大,无限跑到内容的外部去...修改完的展示 此时,label相互之间的约束冲突就解决了~ ---- 接下去,就是设置tableViewCell的高度自适应的问题了; xib的快捷设置方法:1.在xib中,设置 顶部 和 底部 约束之后...; 2.手动计算 高度 约束的值 3.使用Xcode自动适应Cell
需要手动勾去 stackView: 9.0之后才有,去掉stackView自己约束 wkwebview: 如果你在xib 中使用wkwebview ,那么应该去除使用纯代码,可以兼容到8.0
面向协议的方法 创建协议 NibLoadProtocol.swift import Foundation protocol NibLoadProtocol { } extension NibLoadProtocol...Self } } 遵守协议 import UIKit class MyView: UIView, NibLoadProtocol { } 使用 // xib文件与 类名同名 的情况 let demoView...= DemoView.loadFromNib() // xib文件与 类名不相同 的情况 let testV = TestView.loadFromNib("TestView0")
在iOS开发中,自定义view是很常见的事情,如果view上视图功能复杂,固然可以通过frame来计算各个空间位置来布局,不过开发时间就长了,apple为我们提供了快速开发的工具xib,今天就介绍介绍如何通过...2:创建一个xib xib的名字和第一步的名字可以相同也可以不同,为了便于维护还是建议大家吧两者的名字统一 ? ? 3:把view和xib关联起来 ?...4:在xib上创建自己的空间,并拖拽出来 ? 5:然后再view初始化中加载这个视图 ?...到此这个自定义的工作基本已经完成,如果需要做封装什么的可以在这个基础上进行封装~~ ps:作者在使用的时候就犯了一个错误,就是 self = [[[NSBundle mainBundle] loadNibNamed...:@"DPView" owner:self options:nil] firstObject]; 这句在写的时候一定要根据自己的需求相结合,找到合适的地方书写,不然会出现self和你从xib中加载出来的对象不是同一个对象的问题
一.SQLite的使用 采用SQLite数据库来存储数据。SQLite作为一中小型数据库,应用ios中,跟前三种保存方式相比,相对比较复杂一些。还是一步步来吧!....dylib与前者的区别暂时不知,两者应该差不多);在项目文件中头文件或者源文件中添加头文件#import "/usr/include/sqlite3.h" 第二步:开始使用SQLite: 1.打开数据库...使用前注意:如果不往数据库里面添加任何的表,这个数据库等于没有建立,不会在硬盘上产生任何文件,如果数据库已经存在,则会打开这个数据库。...这是因为数据库默认使用ascII编码方式。所以要想正确从数据库中取出中文,需要用NSString来接收从数据库取出的字符串。...二.FMDB的使用 github地址是https://github.com/ccgus/fmdb // 继承 # pod 'FMDB/SQLCipher' 1.FMDB的创建: NSString
Xcode 5 中 xib 文件格式的调整 Xcode 升级到 5 之后, iOS 的 xib 文件发生了变化, 导致 Xamarin Studio 中自带的 iOS ViewController 模板出错了...在界面设计器中, 看到第第一个对象是 View 。 上面的 xib 文件在 MonoTouch 下运行没有任何问题。 在 Xcode 更新到 5.x 之后, 默认的 xib 文件如下: <?...当编译目标为 iOS7 是还能显示额外的布局指南 (Layout Guide) : ? 还有一些 ViewController 额外的属性: ?...Create 方法创建的 ViewController 终于可以使用了。...注意: 使用 MvvmCross 的也可能会遇到同样的问题, 这就需要重写 mvx 默认的 MvxTouchViewsContainer 的 CreateViewOfType 方法 (默认只简单的通过反射创建
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...
怎么让继承的类直接使用XIB的布局试图 最近做的一个小工具,一键替换key,就是为了解放双手,不然每次运行测试和正式的版本都要手动的替换key。...自己几乎所有的项目都是用的全代码,但是平时demo和一些小工具还是用上可视化试图和最新语言Swift. 做到是一个mac程序,几个界面基本上的功能按钮都是一样的。就封装了一个类,用上了xib。...但是拖拽一个NSView,继承与我们刚才的自定义试图,运行发现出不来我们XIB界面。 我自己分析了一下原因,虽然我们让XIB的类指向我们自己自定义试图,但是关联不起来试图。...(coder: NSCoder) 这两个方法里面读取Nib里面的试图获取到设置为自定义试图的大小。 最后对于Xib这一块不是很熟悉就没走通,后来经过搜索,解决了我的问题。...但是我们的是自定义试图,用不上NSViewController。就新建一个xib来做了。 ? 名字命名为OToolBarView.xib我们在xib里面关联刚才创建的类。 ?
在构建一个应用的MVC框架中,我们希望模型、视图、控制这三部分都尽可能的低耦合,而苹果推荐的视图部分构建则是通过XIB或者SB来完成的。...因为MyLayout中的各种布局视图类其实都是从UIView派生的,因此MyLayout是完全可以和XIB以及SB混合使用的。...第一步就是要将XIB或者SB中对AutoLayout和Size Classes的支持去掉: ?...代码和编辑器结合布局 和AutoLayout结合使用方法 上面的例子介绍的是在不使用AutoLayout时如何将MyLayout和XIB以及SB结合的场景,那么如果我们使用AutoLayout并且想用到...AutoLayout和MyLayout混合使用 TangramKit对XIB以及SB的支持 目前TangramKit并没有在XCODE的界面编辑器中定义出可设置的扩展属性。
比如我们在写消息列表的时候,未读消息一般都有个红点,点击一下红点消失。这个功能通常的做法就是Model中标识消息已读。然后在Reload TableView或者Cell。..._msgDataArr[indexPath.row]; [msgModel removeObserver:cell forKeyPath:@"isRead"]; } } 使用...KVO来监听isRead属性,当点击Cell的时候处理 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
上面是后端同学按照照module的方式开发的服务,在整个的项目中请求中前缀相同而每个module都有自己的前缀,结合起来整个请求URL格式就可以拆分为 HOT:PORT?...正如我们的标题一样我们采用category将统一的网络请求拆分到不同的文件中---类似服务端的module一样将器拆分到不同的文件中进行管理 比如上面的我们将通过用的网络请求放置到ApiFetch这个类中...保持一致我们进行各模块的网络请求管理以便根据某一某块的特殊要求作出变化,例如,user模块中 -(void)userGetFetch:(NSString *)url query:(NSDictionary...中附带一个module对应的参数---user,对应的Oder也会添加一个order作为模块url参数的前缀 然后是模块对应的url的管理啦: 如上图每个模块都有自己的path对应url,我们可以统一的防止在...category对应的头文件中 总之一句话就是分而治之,将杂而乱的url分化到不同的模块中去,按照每个模块的特性去进行管理 最后我们看看怎么使用吧 user模块的网络请求实例 NSDictionary
ios9中 UIStackView的使用 by 伍雪颖 UIStackView能够 垂直或水平排布多个subview, 自己主动为每一个subview创建和加入Auto Layout
领取专属 10元无门槛券
手把手带您无忧上云