首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在线等,挺急的!

: M 的网络请求部分, V的数据显示部分, C的逻辑交互部分.对于controller控制器层,往往需要结合业务逻辑去处理,代码量并不算大;对于Model数据模型层,我们有 AFNetworing,....默认不做任何处理.*/ } - (BOOL)isTest { /* 子类应根据自己需要,重写这个方法. */ return NO; } @end 你的Xib视图组件,应该由一个 MCComponent...的子类的.h/.m与一个同名的 .xib 文件组成,如MCTextComponent.h, MCTextComponent.m, MCTextComponent.xib.此时应把XIB的File's Owder...目前能得到的效果 视图基于 AutoLayout; 视图自动适配不同屏幕尺寸; 视图完全独立于数据与业务逻辑; 视图严肃仅与父视图有位置关系; 可以将视图模块的元素与模块同名属性自动关联; 仅需知道父视图的宽高...核心代码,打造自己的视图模块库.

1.4K60

《iOS UI 开发捷径 利用 Interface Builder 高效、优雅地开发 UI》 读书笔记第1章 Interface Bundle 概要第2章 使用 Interface Builder第3

不利于代码的封闭和工程架构的组织 Interface Builder 学习的特点 简单,容易入门 容易犯错误 有很多的“坑”,需要积累属于自己的经验 Interface Builder 的发展 xib...关联 xib 文件与源文件 关联 xib 文件与 UIView 子类的源文件 新建一个空的xib文件,拖一个UIView上去 新建一个继承自UIView的源文件 选中xib文件里的View,把class...方式加载 通过 UINib 方式加载 使用与UIView子类源文件关联的xib Bundle - (NSArray *)loadNibNamed:(NSString *)name...UIView view.addSubview(testView) } 使用与 UIViewController 子类源文件关联的 xib Demo HomeViewController.swift...IB 中,但是源文件必须是 UIView 或者 NSView 的子类。

2.5K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于IB_DESIGNABLE IBInspectable的那些需要注意的事

    也是随着Xcode 6 新加入的关键字。 这两个关键字是用在我们自定义View上的,目前暂时只能用在UIView的子类中所以系统自带的原生的那些控件使用这个关键字都没有效果。...但是这个类必须是UIView或者NSView的子类。通过@IBInspectable可以定义动态属性,即可在Attributes inspector面板中可视化修改属性值。...我们来仔细看看tableViewCell我们是怎么加载的,我们的Xib的class还是自己,但是registerWithNibName的方法调用在tableView中,这样就不会无限递归了。...根据上面的分析,我们找到崩溃的原因是无限递归,这里又必须要调用initWithCoder,我们的唯一办法就是把class改成父类的class,即UIView,这时候一切就好了,Xib/Storyboard...IB_DESIGNABLE / IBInspectable还是有一些缺陷的。IB_DESIGNABLE暂时只能在UIView的子类中用,常用的UIButton加圆角这些暂时也没法预览。

    1.6K30

    编码篇-iOS开发中的奇巧小伎

    摘要 最近搜集了自己以前的笔记中的一些小知识点,归为这篇文章,都是亲测有效的奇巧小伎,当你使用到时,你会大呼过瘾的。...不是禁止,而是暂时停止滚动) 45、使用xib设置UIView的边框、圆角 46、将一个xib添加到另外一个xib上 47、处理字符串,使其首字母大写 48、获取字符串中的数字 49、自动搜索功能,用户连续输入的时候不搜索...自己键盘打出的 % 汉字形式下的还是会报警告,并且不会显示出来.把上文的粘贴过去使用吧!...isMemberOfClass 更加精准,它只能判断这个对象是否是某一个类的实例(不能判断子类) 11.Label字体大小 label.font.pointSize 12.为UIView某个角添加圆角...(比如,两个button同时按push到新界面,两个都会响应,可能导致push重叠) // UIView有个属性叫做exclusiveTouch,设置为YES后,其响应事件会和其他view互斥(有其他view

    5.4K10

    iOS 面试策略之系统框架-UIKit

    这都是要和面试官进行进一步沟通确定的。 假如我们要从零创建一个 label,配置它在页面上的布局,并设置属性值,有以下几种方式。 用 storyboard 或 xib 完成。...2.storyboard/xib,和纯代码构建 UI 相比,有什么优缺点? 关键词:#可视化 #多人协作 #性能 storyboard/xib 的开发方式优点和缺点都十分明显。优点是: 简单直接。...4.UIView 和 CALayer 有什么区别? 关键词: #性能 #交互 UIView 和 CALayer 都是 UI 操作的对象。...两者都是 NSObject 的子类,发生在 UIView 上的操作本质上也发生在对应的 CALayer 上。 UIView 是 CALayer 用于交互的抽象。...UIView 是 UIResponder 的子类( UIResponder 是 NSObject 的子类),提供了很多 CALayer 所没有的交互上的接口,主要负责处理用户触发的种种操作。

    1.5K20

    awakeFromNib小总结

    大家好,又见面了,我是全栈君 awakeFromNib 在使用IB的时候才会涉及到此方法的使用。...当.nib文件被载入的时候,会发送一个awakeFromNib的消息到.nib文件里的每一个对象,每一个对象都能够定义自己的awakeFromNib函数来响应这个消息。运行一些必要的操作。...看样例: 创建一个viewController with XIB 定义一个UIView的子类 打开xib,并把View的类型指定为上一步骤定义的子类 然后在TestView.m中增加 awakeFromNib...可是假设你使用initWithNibName调入Nib时,awakeFromNib是不会被调用的。 这个好像不准确。!! } 第二句:initWithcoder是系统自己主动调用的,以后说!!!...第三句和第四句:这两局setNeedsDisplay会异步的调用drawRect来更新view的内容。

    46410

    iOS面试题-UI篇

    UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和坐标有关的属性,如frame,bounds等,实际上内部都是访问它所在CALayer的相关属性 UIView有个layer属性,可以返回它的主...CALayer实例,UIView有一个layerClass方法,返回主layer所使用的类,UIView的子类,可以通过重载这个方法,来让UIView使用不同的CALayer来显示,如: - (class...) layerClass { // 使某个UIView的子类使用GL来进行绘制 return ([CAEAGLLayer class]); } UIView的CALayer类似UIView...补充部分,这部分有深度了,大致了解一下吧,UIView的layer树形在系统内部被系统维护着三份copy 逻辑树,就是代码里可以操纵的,例如更改layer的属性等等就在这一份 动画树,这是一个中间层,系统正是在这一层上更改属性...其次,判断触摸点是否在自己身上 对应方法pointInside:withEvent: 从后往前(先遍历最后添加的子控件)遍历子控件,重复前面的两个步骤 如果没有符合条件的子控件,那么就自己处理 事件响应者链

    2K21

    iOS_指定初始化方法Designated Initializer和非指定初始化方法Secondary Initializer

    一个类可以有多个DI 建议只在DI中,才存储内部数据。...(如: UIView的initWithCoder调用的是NSObject的init) 确保充分覆盖所有继承的初始化 4.多个指定初始化方法: 当某对象的实例有两种完全不同的创建方式时,必须分开处理时,会出现这种情况...initializer / Secondary Initializer 如果子类有自己的DI, 那么SI必须调用自己的DI/SI(最终有调用自己的DI就行) (不可调用父类的DI) DI通过向...,得调用自己的DI !!!...-UINibDecoder:仅包含了xib里设置的数据,在初始化后会调用awakeFromNib 方法,我们需要把额外初始化动作写在这里 UIView的DI是initWithFrame: UIViewController

    57130

    iOS-自定义View的封装

    滚动一个UIScrollView会触发layoutSubviews - 旋转Screen会触发父UIView上的layoutSubviews事件 - 改变一个UIView大小的时候也会触发父UIView...上的layoutSubviews事件 完整的例子 @class ImageData; @interface ImageDataView : UIView //模型 @property (nonatomic...封装 新建一个继承UIView的类 新建一个xib文件(xib的文件名最好和控件名一样,修改最外面那个控件的class为控件类名 ) 创建xib 添加子控件、设置子控件属性...的比较 在调整子控件的frame时,使用纯代码比xib更灵活,子控件可以在layoutSubviews方法中灵活调整自己的frame。...而用xib相对于比较死板,但是更简单,更方便 自定义UIView时,如果该View一直一个样式,推荐使用xib,简单方便 而子控件经常随着父控件变化而变化,推荐使用纯代码,灵活多变

    30410

    两种通过Plist加载图片的方法及问题,九宫格的算法,字典转模型1. 序列帧动画实现2. 图片浏览器-两种加载plist的方式3. 图片浏览器-内存问题4 MVC简单介绍和类前缀5 应用管理-两种加载

    加载XIB,只需要在第一个参数传入 XIB 的文件名,注意:没有扩展名 方法1,iOS 3.0 的方法 UIView *appView = [[NSBundle mainBundle] loadNibNamed...UIView *appView = [nib instantiateWithOwner:nil options:nil].lastObject; 6-应用管理-管理XIB的类 管理xib的类一般做两个事件...appView; @end 在自定义View中,新建类方法返回自己的实例,然后加载xib....// 建立UIView GMAppView *xib = [GMAppView GMAppView]; xib.appInfo = _appData...- 有一个根据字典返回自己的方法 (类方法、对象方法两种) - 加载plist并转为数组的方法 ### 8.3.2 作为view - 有一个返回自己的实例的方法(至于怎么创建的 无所谓)

    87630

    iOS从Xib中设置样式

    用storyboard和xib进行view的生成,这种方式运行效率是会降低,但现在的手机配置基本可以忽略这点弊端,官方也推荐这种方式 常用技巧 选中View 当你想直接在view中选择自己想要的元素时...添加AutoLayout边距约束时如何不使用margin约束 通常我习惯于在xib或者StoryBoard中用右键drag拖线的方式设置autolayout约束,但是默认的autolayout边距约束可能是带...添加第三方字体 把字体ttf文件像普通文件加入到项目中,在xib或storyboard中就可以直接使用新字体了 属性设置 但是很多属性的设置 在xib中是不能完全自定义的,作为一个喜欢用xib这种方式的码客来说...,当然能最大限度的使用xib可自定义的属性当然是极好的,下面就说一下一些不常用的从xib中可设置的属性 这些属性的设置在右面设置菜单的第三个选项卡的User Defined Runtime Attributes...Xcode 6以上支持一种新的方法,特好用 其实就是为UIView添加扩展 或 继承 添加IBInspectable的属性 既可以图形化设置某些属性 这样在右侧的第四个选项卡中神奇的出现了自定义的设置项

    2.4K20

    Java知多少(53)使用Java创建自己的异常子类

    尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。...这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。...Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所有异常,包括你创建的,都可以获得Throwable定义的方法。这些方法显示在表10-3中。...当输出一个Throwable对象时,该方法被println( )调用 下面的例子声明了Exception的一个新子类,然后该子类当作方法中出错情形的信号。...该子类非常简单:它只含有一个构造函数和一个重载的显示异常值的toString( )方法。ExceptionDemo类定义了一个compute( )方法。该方法抛出一个MyException对象。

    32020

    iOS布局之AutoresizingMask和AutoLayout

    //父视图 UIView *superView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; superView.backgroundColor...= [UIColor orangeColor]; [self.view addSubview:superView]; //子视图 UIView *subView = [[UIView alloc] initWithFrame...中使用AutoResizing,我们需要进行如下的操作,在当我们创建xib视图的时候,我们在XIB里选中一个UIView, 1.进入file Inspector, 在这里取消AutoLayout属性,...从而实现了视图的自动布局。而当我们确定选择使用AutoLayout添加自己的约束的时候,我们必须设置此属性为NO,XIB中这个属性默认是NO。...那么AutoLayout在开发中具体如何使用呢,这其实分为两种情况,一种是借助xib中的约束功能通过连线的方法实现。

    1.9K60

    202 - Swift 的核心是什么?

    Swift,虽然也能写出可以运行的项目,但是面向对象的思想就和 Swift 的编程思想还是有本质的区别的。...(image-fd804b-1517807204933)] 这张图是我在网上找到的一篇文章中的截图,下面是文章地址: 不要用子类!...答案肯定是否定的。所以,既然子类不需要,何必要继承父类的方法呢?自己的方法应该由自己决定才对的,而现在是基类帮着子类决定了它的方法。...所以这样就引出了 protocol,让自己的类实现自己所要遵守的 protocol,这里我说的并不是某一个 class,我这里指的是有那么几个 class 都要实现功能的时候,选择用 protocol...当我自定义 UIView 的时候,我想让 view 从 xib 加载,那么我就需要在每个类里都写一个从 xib 加载的类方法,如下代码: static func classMethodCreateView

    96220

    自定义View

    自定义View 通过纯代码自定义控件 继承自系统自带的控件,写一个属于自己的控件 在 .h 文件中声明模型对象 @class@property(nonatomic,strong)Shop *shop;...目的:封装控件内部的细节,不让外界关心 步骤 新建一个继承UIView的类 在initWithFrame:方法中添加子控件 当控件第一次创建或者通过 init 和initWithFrame...= [UIImage imageNamed:shop.icon]; self.shopLabel.text = shop.namelabel; } 通过xib自定义控件 新建一个继承UIView...文件(xib的文件名最好跟控件类名一样) 添加子控件、设置子控件属性 修改最外面那个控件的class为控件类名 将子控件进行连线 提供模型属性,重写模型的set方法 在set方法中给子控件设置数据...和 storyboard 对比 共同点 都用来描述软件界面 都用Interface Builder 工具来编辑 本质都是转换成代码去创建控件 不同点 xib 是轻量级的,用来描述局部的 UI 界面 storyboard

    73560
    领券