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

iOS 关于Interface Building 一些小技巧

Fill Spacing:该属性会保持子视图宽高,所有子视图中间间隔保持一致。 Fill Center: 该属性是控制所有子视图中心之间距离保持一致。...应用场景 最常见简单问题,如果我们需要在一行放两个Label,Label宽度自适应。这样就会报错,因为无法确定哪一个Label宽度撑开优先级高。 演示Demo: 两个Label约束如下: ?...(coder: NSCoder)初始化方法中,添加xib视图。 import UIKit class SbView: UIView { required init?...基本属性: 属性 作用 identifier 字符串标识,区分页面不同Segue source 跳转之前控制器 destination 需要跳转到控制器 传值: 有时候我们需要判断是否满足跳转条件...title = "第二控制器" } } 下面一个图可以清楚说明: ?

1.7K31
您找到你想要的搜索结果了吗?
是的
没有找到

深入详解iOS适配技术

storyboard中使用Autoresizing.gif 从上图看出,storyBoard中Autoresizing只能设置两个父子视图之间相对位置关系,一共6条虚线,分别是周围四条虚线和方块内部两条线...周围四条虚线分别代表子控件距离父控件上、下、左、右之间距离关系/或者叫约束关系,周围四条虚线所包围小方块代表子视图,小方块内部两条带双向箭头线分别代表子控件宽度和高度。...当我们点击周围四条虚线时,虚线会变成实线,代表子控件和父控件在这个方向上间距被固定了。当我们点击子视图内部虚线时,同样也变为实线,代表子视图宽度或者高度被固定了。...,宽度随父视图宽度缩放而缩放。...控制器viewautoresizing 注意:如果我们在storyBoard中选中控制器view,然后在尺寸检查器中查看会发现,autoresizing中控制子控件宽度和高度虚线自动变成了实线

8.4K70

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

4 MVC简单介绍和类前缀 模型 : 数据 视图 : 负责显示 控制器 : 处理逻辑,如跳转界面 类前缀苹果推荐使用三个或三个以上字母,防止重名 5 应用管理-两种加载xib方式 从 NSBundle...把加载xib实现细节封装在此类中 把子控件设置数据代码也封装在此类内部,不要放在外面 #import @class HMApp; @interface HMAppView...MVC中V负责显示,C只需要拿到这个视图,至于这个视图是怎么来,C不需要关心. 7 应用管理-九宫格布局 // 定义格子宽和高 NSInteger appW = 100;...视图宽度-左边距-右边距-(格子宽*一行有几个) / (一行有几个 减 1) NSInteger marginOfApp = (self.view.bounds.size.width -...[i]; //设置frame xib.frame = CGRectMake(appX, appY, appW, appH); //把appView添加到控制器view

81930

Swift 项目 - Xib | StoryBoard 多人协作技巧

StoryBoard 和 Xib 都是用来分离UI样式代码,改善视图代码重用率,增加所见即所得,降低视图测试繁复度视图系列化工具, 其中Xib视图View为主, StoryBoard 以控制器Controller...与其说StoryBoard 和 Xib 隐藏了UI细节,倒不如说苹果是希望通过他们来引导开发者正确使用 视图控制器 ,他们创建视图实例时候都是通过 required init?...一个占位容器视图指向子控制器Embed Segue 按住Control键连线到想要包含控制器,占位视图实例==子控制器view(子控制器视图) 选择Embed连线方式后,子控制器 尺寸变化成跟占位视图一样尺寸...绑定类名改变时,对应Storyboard上做处理,导致运行时崩溃,崩溃内容看不懂!...构建视图或者控制器,但找不到名为HomeController控制器,看到这里就应该明白,我们某个Storyboard上绑定了名为HomeController控制器,但代码中找不到,可能是改名或者删除了

2K20

六天完成一个简单iOS App - 第五天

:didDeselectRowAtIndexPath方法中通过点击cell,减少cell高度,当cell重新显示时候还是会变回原来高度,并且系统内部对cell进行了一些处理,已经在内部设置好cell...= CLTopicTypeWord) { // 图片高度需要根据能显示最大宽度等比进行计算 中间内容高度 = 中间内容宽度 * 图片实际高度 / 图片实际宽度...cell中间内容显示 cell中间内容分为四大模块,视频、音频、图片、段子。段子没有图片显示,我们使用xib来分别描述视频,音频,和图片显示。如图 ? 视频xib ? 音频xib ?...精华模块重构 全部界面完成之后,我们发现之后视频,音频,图片,段子页面显示非常简单,直接将全部界面的代码复制过去,修改数据请求参数即可,1为全部,41为视频,31为音频,10为图片,29为段子。...查看图片 对于图片cell,点击图片会Mode出一个控制器来显示图片,同样使用xib来描述图片显示控制器,创建CLSeeBigViewController控制器,通过xib描述控制器view ?

85860

程序启动完整过程

显示窗口 窗口(UIWindow) 一种特殊UIView,一个app中至少有一个UIWindow iOS启动完毕后创建第一个视图就是UIWindow 接着创建控制器,再把控制器View加到UIWindow...// 2.设置窗口控制器 // 通过xib去加载控制器 // .首先创建一个Xib文件 // .Xib文件需要拖一个View描述控制器View...// .需要把XibView与控制器连线,设置XibFile'owner为控制器 UIViewController *rootVc = [[UIViewController alloc...文件顺序 若加载xib文件传入name参数,则按参数描述加载 若传入参数 先加载与控制器名字View.xib控制器命名为YLViewController,则首先加载YLView.xib...而后加载与控制名字一样xib控制器命名为YLViewController,则首先加载YLViewContrller.xib 若都找不到则加载空。

1.5K150

MyLayout和XIB或SB混合使用方法

在构建一个应用MVC框架中,我们希望模型、视图、控制这三部分都尽可能低耦合,而苹果推荐视图部分构建则是通过XIB或者SB来完成。...MyLayout一些布局视图属性以及子视图扩展布局属性是可以在XIB或者SB界面编辑器里面进行设置。唯一一个缺点是这些属性设置不能起到所见即所得效果。...取消对AutoLayout支持 第二步就是将视图控制器视图类名转化为对应布局视图类: ?...这里设置为1799原因是MyGravity_Fill枚举值就是1799(参考MyGravity类型枚举值定义)。通过gravity属性设置了所有子视图均分高度和以及宽度和布局视图相等。...布局运行结果 从上面的例子里面我们可以看出MyLayout是可以完全和XIB以及SB无缝结合,我们在没有任何编码情况下,通过几个简单属性设置就实现了三个子视图垂直高度均分以及宽度和布局视图相等以及每个子视图之间间隔

85640

iOS-控制器View创建和生命周期

首先判断下有没有指定storyboard或者xib,如果指定,就会加载它们描述控制器view,如果没有指定,创建一个空view。...viewDidLoad 作用:一般我们会在这里做界面上初始化操作,比如往view中添加一些子视图等。 什么时候调用:每当view创建完毕时候,最终都会调用viewDidLoad方法。...通过storyboard创建控制器,或者通过xib创建控制器view,系统会帮我们加载控制器view,具体内部实现可以看iOS-UIWindow详解,在此不在赘述 ViewController...(1).判断下有没有指定nibName,如果指定了,就会去加载指定xib (2).如果没有指定,就会判断下有没有跟控制器类名同名xib,有,就会去加载 (3).判断下有没有跟控制器类名同名xib...,但是后缀不带Controllerxib,如果有,就会去加载 (4).如果没有任何xib描述控制器view,就不会加载xib

1.3K60

iOS xib 实现兄弟控件N等分且宽高比例是1:N

引言 本文为 iOS视图约束专题第三篇:xib上使用自动布局教程 第一篇:【1、Masonry以动画形式更新约束 2、利用dividedBy进行九宫格布局3、Masonry约束宽高比例子demo】...N等分 且宽高比例是1:N(xib 上实现) https://blog.csdn.net/z929118967/article/details/77742703 I、自动布局实现兄弟控件N等分 设置视图...X Y ,以及视图之间间距之后 接下来关键步骤是设置视图高度等于视图宽度 1.1、 设置视图高度等于视图宽度宽度可以由自动布局自动确定) ?...选择Ratio 即可,自己可适当修改比例 1.2、 设置控件之间宽度比例 选中存在宽度控件,并设置等宽,之后进行比例修改。 ?...自动布局实现兄弟控件N等分 且宽高比例是1:N(xib 上实现) https://blog.csdn.net/z929118967/article/details/77742703

91940

UIViewController生命周期

一、视图控制器 UIViewController采用懒加载方式,也就是说第一次访问到view属性时才会加载或创建它。...由于视图视图控制器管理,所以讨论视图加载方式时,主要讨论视图控制器加载方式。 通过Storyboard加载:这是苹果推荐方式。...通过加载xib文件来创建UIViewControllerview 如果没有找到相关联xib文件,就会创建一个空白UIView,然后赋值给UIViewControllerview属性 默认不用实现...四、程序生命周期 应用程序状态: Not running运行:程序没启动。...添加到uiwindow上面 (1)直接将控制器view添加到UIWindow中,并不理会它对应控制器 [self.window addsubview:vc.view]; (2)设置uiwindow

1.8K10

iOS面试题-UI篇

内部是由Core Animation来实现,它真正绘图部分,是由一个叫CALayer(Core Animation Layer)类来管理。...loadView用来自定义view,只要实现了这个方法,其他通过xib或storyboard创建view都不会被加载 看懂控制器view创建这个图就行 [image] IBOutlet连出来视图属性为什么可以被设置成...两者都是在多个试图控制器间跳转函数 presentViewController提供是一个模态视图控制器(modal) pushViewController提供一个栈控制器数组,push/pop 请简述...能 因为UIScrollView内容尺寸是根据其内部内容来决定,所以是可以在viewDidLoad中设置 补充:(这仅仅是一种特殊情况) 前提,控制器B是控制器A一个子控制器,且控制器B内容只在控制器...,那么就自己处理 事件响应者链 如果当前view是控制器view,那么就传递给控制器 如果控制器不存在,则将其传递给它父控件 在视图层次结构最顶层视图也不能处理接收到事件或消息,则将事件或消息传递给

1.9K21

iOS布局之AutoresizingMask和AutoLayout

100, 100)]; subView.backgroundColor = [UIColor purpleColor]; [superView addSubview:subView]; //设置子视图宽度随着父视图变化...(0, 0,200 , 200); 以上代码中我们设置了子视图宽度随父视图变化而改变,其效果图如下: ?...屏幕快照 2016-09-18 下午4.53.23.png 我们可以看到,图中视图宽度也随着父视图宽度增加到了二倍。这就是AutoResizing一个最简单应用。...中使用AutoResizing,我们需要进行如下操作,在当我们创建xib视图时候,我们在XIB里选中一个UIView, 1.进入file Inspector, 在这里取消AutoLayout属性,...从而实现了视图自动布局。而当我们确定选择使用AutoLayout添加自己约束时候,我们必须设置此属性为NO,XIB中这个属性默认是NO。

1.8K60

ViewController及View生命周期1. 起因2. Controller生命周期3. View生命周期4. 内存警告

Controller生命周期 系统提供了控制器从显示到消失四个方法。 千万不要看到方法名中间出现了view就以为这是视图方法。这些都是控制器生命周期。...NS_AVAILABLE_IOS(5_0); 在四个方法中: isMovingFromParentViewController 会在viewWillDisappear & viewDidDisappear 方法内部调用这个方法判断视图控制器视图隐藏是否因为视图控制器从它容器视图控制器移除...isBeingDismissed 会在viewWillDisappear & viewDidDisappear 方法内部调用这个方法判断视图控制器视图隐藏是否因为视图控制器被清退 (dismissed...,与上面被其它视图控制器显示对应,如信息录入完成,返回之前视图控制器)。...在执行时候会首先判断有没有指定storyboard或者Xib,如果指定,就会加载它们描述控制器View,如果没有指定,创建一个空View。

1.3K30

iOS-视频播放器简单封装

视频播放器布局 首先使用xib创建CLAVPlayerView继承UIView用来承载播放器,这样我们在外部使用时候,直接在控制器View或者Cell上添加CLAVPlayerView即可,至于播放器播放或者暂停等操作交给...给imageVIew添加手势,则通过loadNibNamed加载xib时候需要获取返回数组firstObject,得到才是xibView,如果获取lastObject,得到是的tap手势,会报错...而当播放状态时,点击imageView和中间播放按钮效果一样,开始播放视频。 添加定时器,5秒钟之后隐藏底部工具条,并提供移除定时器方法。...手势点击方法实现,这里分为几种情况,当视频播放时候,点击imageView不会显示工具栏,而是与点击中间播放按钮相同,开始播放视频,播放过程中点击imageView会显示工具栏,而如果此时点击了工具栏中暂停按钮...全屏播放需要控制器Moda出一个全屏播放控制器进行全屏播放,创建全屏播放控制器CLFullViewController,并使其支持左右方向旋转,Moda出CLFullViewController

1.8K110

iOS基础问答面试题连载(二)-附答案

xcode7没有Frameworks文件夹,xcode7内部会自动帮你导入一些常见框架. xcode7多了LaunchScreen.xib,LaunchScreen.xib设置启动界面,而且可以确定模拟器或者真机真实尺寸...UIWindow是一种特殊UIView,通常在一个app中至少有一个UIWindow iOS程序启动完毕后,创建第一个视图控件就是UIWindow,接着创建控制器view, 最后将控制器view...如果不是从StoryBoard当中加载, 那么它还会判断是不是从Xib当中创建控制器.如果是,那么它就会从xib加载控制器View....如果也不是从Xib加载控制器.那么它就会创建一个空UIView.设为当前控制器View. 注意点: 一旦重写了loadView,表示需要自己创建控制器View....加载完毕数据一定做本地缓存. cell当中不要动态添加子控件.一般都在创建时,就把要出现Cell给添加进去,暂时不要显示,可隐藏. 尽量减少Cell内部子控件个数.

1.4K90

iOS从Xib中设置样式

简介 iOS在写视图有的人喜欢纯代码去写,从之前绝对定位方式(Frame),到现在自动布局(Autolayout),但这种方式好处是便于复制修改和装X,但是缺点是代码不容易看,不便于修改 也有人喜欢所见即所得...用storyboard和xib进行view生成,这种方式运行效率是会降低,但现在手机配置基本可以忽略这点弊端,官方也推荐这种方式 常用技巧 选中View 当你想直接在view中选择自己想要元素时...当然你可以去掉Constrain to margin勾选,不过这要是一个一个去掉勾选也是挺烦事情,而且对旧项目来说这可能又会导致原来布局好视图产生变动。...添加第三方字体 把字体ttf文件像普通文件加入到项目中,在xib或storyboard中就可以直接使用新字体了 属性设置 但是很多属性设置 在xib中是不能完全自定义,作为一个喜欢用xib这种方式码客来说...,当然能最大限度使用xib可自定义属性当然是极好,下面就说一下一些不常用xib中可设置属性 这些属性设置在右面设置菜单第三个选项卡User Defined Runtime Attributes

2.3K20
领券