iOS AutoLayout: 关联 Xib 和 UIView

iOS: 引导页 UIScrollView 自动布局(AutoLayout)详解 开屏引导页是app常用的一种引导页,即第一次打开app后显示给用户的几个左右滑动的页面,用来提醒用户这个版本有什么新东西。 由于 UIScrollView 和 UIPageControl 配合能完美的实现引导页的功能,因此这个任务并不算太难。 PS:这个功能是 OC 写的,换成 swift 也很容易。 需求 第一次打开app的时候显示,显示过之后再次打开就不再显示了。 更新引导页,更新第二版或者... 阅读详情

博客 iOS AutoLayout: 关联 Xib 和 UIViewController 介绍了 UIViewController 如何关联 xib 文件, 并且如何给组件连线以及一些需要注意的事项.

今天继续 Autolayout 的话题.

1.新建一个 Single View 的 iOS 项目

2.新建一个 Empty 的 Userinterface View, 取名为 View.xib

3.新建一个继承自 UIView 的子类, 取名为 CustomView.

4.打开 View.xib, 选择 File Owner 为 CustomView.

如下图所示

图1

在 ViewController 的 viewDidload 加入下面代码:

CustomView *cv = [[CustomView alloc] init];
    UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"View" owner:cv options:nil] firstObject];

    view.frame = self.view.bounds;

    [self.view addSubview:view];

编译运行, 即可看到效果.

CustomView 实现

#import "CustomView.h"

@interface CustomView ()

@property (nonatomic, strong) UIView *nibView;

@end

@implementation CustomView

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];

    if (self) {
        _nibView = [[[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil] firstObject];

        _nibView.frame = frame;

        [self addSubview:_nibView];
    }

    NSLog(@"CustomView: initWithFrame...");

    return self;
}

- (instancetype)initWithCoder:(NSCoder *)coder
{
    self = [super initWithCoder:coder];

    if (self) {

    }

    NSLog(@"CustomView: initWithCoder...");

    return self;
}

- (void)awakeFromNib
{
    [super awakeFromNib];

    NSLog(@"CustomView: awakeFromNib...");
}

//重写该方法
- (void)layoutSubviews
{
    [super layoutSubviews];

    self.nibView.frame = self.frame;
}

//重写该方法
- (void)setFrame:(CGRect)frame
{
    _nibView.frame = frame;
    [super setFrame:frame];
}

修改 ViewController 中 viewDidload 方法:

#if 0
    //方式 1
    CustomView *cv = [[CustomView alloc] init];
    UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"View" owner:cv options:nil] firstObject];

    view.frame = self.view.bounds;

    [self.view addSubview:view];
#endif

    // 方式2
    //CustomView *customView = [[CustomView alloc] initWithFrame:self.view.bounds];

    // 方式3
    CustomView *customView = [[CustomView alloc] init];
    customView.frame = self.view.bounds;

    [self.view addSubview:customView]

无论在 ViewController 中使用哪种方式来加载视图, 都是调用视图的 initWithFrame 方法.不是 initWithCoder.

下篇博客继续 UIView 和 Xib 的话题, 我会使用另一种加载和设计方式.

收工!

ios app实现xib之间的跳转 ios app实现xib之间的跳转,ios app实现xib之间的跳转。 立即下载

相关推荐

使用XIB自定义一个UIView

iPhone开发学习笔记005——使用XIB自定义一个UIView,然后将这个view添加到controller的view。

iOS 通过代码添加约束之NSLayoutConstraint

什么是NSLayoutConstraint? 在xib中,我们可以用拖拽约束的方式来给空间添加约束条件,但是如果控件过多,则整个xib文件中的线条会变得混乱不堪,虽然苹果在极力推荐可视化的加约束方式,但是还是给我们提供了代码的方式来添加约束:NSLayoutConstraint。 如何使用NSLayoutConstraint? 在使用NSLayoutConstraint前,我们需

王颜华的博客 1175

家庭网络中,路由器和交换机的连接顺序

它的目的是给路由器增加端口,用户访问互联网的速度比情况一要快,常用于办公网络、家庭成员多的场景。光纤入户首先连接的肯定是光猫,而在光猫的后面,是先连接交换机?还是应该接路由器呢?家庭网络中路由器和交换机的先后连接顺序。它目的是让更多的用户访问互联网。常用于一些超大型机房、网吧等。至于路由器和交换机的区别。两者之间很多功能都有兼容。但用户上网速度相对较慢。在技术日益迭代的今天。

m0_74075744的博客 1万+

iOS学习笔记36-Masonry自动布局

一、Masonry介绍之前我们在屏幕适配的章节中学习过AutoLayout的使用,但那都是在可视化界面上进行添加约束完成的,我们很多时候都需要在代码中使用AutoLayout约束,苹果也为我们提供了实现,使用NSLayoutConstraint类表示约束,但使用起来比较复杂,代码量比较大,例如创建一个约束的方法:+ (id)constraintWithItem:(id)view1 /* 一个UIVi

执着丶执念的博客 2071

SAP资产按每天折旧功能介绍

注意:此处在计算百分比时将30天作为剩余使用寿命,因为SAPS/4HANA中的计算是通过考虑购置第一年的折旧总天数来进行的。这是因为我在计算总使用寿命时只使用了365天,如果剩余使用寿命大于1年,SAPS/4HANA会将闰年规范化为365天。此功能仅对确定使用寿命或剩余寿命百分比的折旧键有用,如果需要,这种折旧到日的解决方案可以应用于需要每天计算折旧的跨行业(任何国家/行业)。注意:这里在计算百分比时考虑了2天,因为364天已经过期,但目前我们到达2024年,使用寿命为366天。它只会在下一年生效。

yanzibing99的博客 1562

到底什么是电源的斜波补偿,电源芯片CS引脚作用,一文讲清楚!

上文有提到电流环,其实电流环再细分也有很多模式,用的最多的是峰值电流模式峰值电流模式调节工作原理如下:(1)当输出负载增大时,输出电压降低,因此,Vc 增大,线性增加的电感电流只有升高到更大的值才能使 PWM 电流比较器翻转,开关管导通的时间增长,占空比增加,输入功率增加,因此输出电压增加,当输出电压增加到调节的范围内时,系统保持平衡。

jwgdhuwdhg的博客 1万+

NSLayoutConstraint-代码中添加约束

  方法一介绍 代码约束是通过NSLayoutConstraint类进行约束的, 第一种方式就是通过其类方法constraintWithItem: attribute: relatedBy: toItem: attribute: multiplier: constant:方法. [NSLayoutConstraint constraintWithItem:(id)item ...

DCSnail-蜗牛 1193

技术解析:ChangeFormer——基于Transformer的孪生网络在遥感变化检测中的创新应用

本文深入解析了ChangeFormer模型在遥感变化检测中的创新应用,该模型基于Transformer架构和孪生网络(Siamese Network),显著提升了变化检测的精度和效率。通过详细的技术实现和实战经验分享,展示了其在建筑物变化、森林监测等场景中的卓越表现,为相关领域的研究和应用提供了有力工具。

weixin_29102619的博客 498

iOS自定义view关联Xib

iOS开发中,为了快速开发节约时间,经常会使用xib。但是普通view和headerView等系统并未提供 关联的xib。此时需要我们自定义xib,并且与相关文件进行关联。 1、创建.h及.m文件。 2、复制上面的文件名,用来创建一个空的View。 3、进行关联。 3.1先关联File’s Owner 3.2 再关联view ** 4、特别注意项: ** 当关联完成后,我们可以在view视图中...

qq_30996015的博客 1860

吹气压力传感器US6310 US6330调试

更换压力传感器, 从US6310 更换为US6330。 6310有一个准备好引脚,AD转换完成后会给MCU一个脉冲 而6330就没有这个功能,6330这个引脚是用来选择SPI还是I2C接口的。(6330没有复位引脚,内部有POR功能) 因此在实现上是有根本区别的, 其它方面使用的命令也不一样, 6310 A8 A9两条命令,一个命令模块醒来,一个命令模块休眠, 6330只有一条命令AA, 命令模块开始转换。 针对这2个模块作为2种处理方法, 1. 6310,可以设置一...

明天乌儿会歌唱 2027

不用FFmpeg!纯前端实现RTSP直播的3种现代方案对比(WebSocket/Wasm/WebCodecs)

本文深入探讨了纯前端实现RTSP直播的三种现代技术方案:WebSocket代理转发、Wasm解码和WebCodecs硬解。通过详细的架构设计、性能实测数据和兼容性分析,帮助开发者在安防监控、智慧城市等场景中选择最佳方案,实现低延迟、高效率的视频流处理。

lilh34434的博客 231

iOS UIViewController 和 xib 绑定 详解

1> 创建 UIViewController,此处不选择 Alse create XIB file 2> 创建 xib 文件 3> 在 xib 中,点击 Placeholder -> File’s Owner 在右边 Show the Identity inspector ,在 Class 中设置 xib 需要绑定 UIViewController

chenshun123的博客 1万+

003、高通骁龙Spectra ISP架构深度解析:IFE/BPS/IPE流水线与Chromatix调优实战

摘要: 本文深入解析高通骁龙Spectra ISP架构,重点剖析IFE、BPS、IPE三阶段的流水线协作机制与Chromatix调优实战。通过夜景预览"水波纹"案例,揭示HDR对齐与TNR运动估计的关联性问题,指出ISP调优需关注模块间的时序与带宽约束。文章详解各模块核心功能:IFE负责RAW域处理(HDR合成/校正),BPS专注降噪与细节增强,IPE进行YUV域精处理。针对Chromatix调优,强调参数与寄存器映射关系,并给出LSC网格密度、TNR运动灵敏度、LTM光晕等典型问题的解决方案。最后提出实用

zzfmlxs的博客 233

iOS AutoLayout: UIView 关联 Xib 不设置 File's Owner

继续上篇iOS AutoLayout: 关联 Xib 和 UIView博客唠叨.新定义一个 UIView 子类, 名字为 Custom2新建 xib 文件, 这里取名为 Custom2.xib看一下视图关系明显没有设置 File owner可以看出, Custom2 这个 View 的 Custom Class 是我们上面定义的 Custom2这个 UIView 的子类.ok, 设置完毕.将视图上面

CodingMan 3157

Ubuntu22.04安装ros(一键搞定)

然后发现可以一键安装,话不多说,直接终端输入如下指令。回车之后系统会自动安装ros。

m0_47313541的博客 7416

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

xib自定义UIView 在Storyboard中使用AutoLayout

Xib和Storyboard的使用我就不多叙述。关于如何用Xib自定义一个UIView,并将其添加在ViewController上,使用AutoLayout添加约束条件,使其跟随控制器ViewController的约束条件变化而变化呢?请看下文。1、 创建一个继承UIView的子类TestView和xib文件 2、 选中xib中的File’s Owner,设置右边工具栏中的Custom Clas

ColaBean的专栏 1233

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

iOS AutoLayout: 关联 Xib 和 UIViewController

今天主要跟大家分享两个内容 * UIViewController 如何作为 Xib 的 File’s Owner * Xib 中的组件如何和 UIViewController 连线 创建工程 MZXibAndVC 简单的创建一个 Single View 的 iOS 工程即可. 创建 xib 文件 View.xib 新建文件/iOS/UserInterface View/Empty 编

CodingMan 3411

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

XIB同Class的关联

之前写程序全是用代码写,后来发现XIB也很方便,省去了不少事,于是想在之前没有加上XIBr

xiekunmiao的专栏 1633

iOS开发 带xib的自定义View自适应屏幕问题

转自:http://www.07net01.com/program/2016/01/1210764.html [摘要:为了省时光,自界说的View,给它弄一个xib,内里的子View,间接正在xib里划推几个就好了,切切出念到,整出去的自界说View,不管我 以何种姿态的设置frame,减载其余中央,它的frame皆是(0,0]  为了省时间,自定义的View,给它搞一个xib

jacker_2014的博客 4320

Xib、AutoLayout等使用心得

欢迎关注微信公共账号“Android老码农”,与老码农交流。 本文同时发表在老码农的个人独立网站:http://www.koulianbing.com/?p=83 在新项目中使用Xib有一段时间了,遇到了不少的问题,也收获了很多的奇迹,最让我惊叹的就是使用熟练之后的界面开发速度,完胜Android那种XML方式的半吊子可视化界面开发工具。这里把使用心得汇总一下,希望能帮到大家。

农场老马的专栏 1万+

IOS中 xib自定义View在storyboard中的使用

最近遇到一个这样的问题,在应用当中有多个ViewController中包含相同布局的SubView。于是就想把这样的View 提取出来做一个自定义的View,这样就可以避免在storyboard中反复绘制相同的东西,代码上也可以降低重复。 摸索了之后总结出下面的步骤: 1,创建UIView 的SubClass 命名为MyView 2, new一个名为MyView的

一枚道人的IOS专栏 6699

用xib创建一个UIView(xib自定义view,修改不了frame的问题)

1.创建一个CustomerView的文件,commend+n,如图: 2.用xib创建一个view,命名为CustomerView,commend+n,如图: 3.修改xib中如下数据, 3.1 首先修改File’s Owner中的Class为:CustomerView,如图: 3.2 在修改xib 的 Simulated Metrics 的参数值,如图: 4....

守候可爱多的博客 5313

浅析 - Storyboard / Xib

大家都知道纯代码写应用的成本是很高的,特别是涉及到UI界面的实现,相当耗费时间。之前自己写应用时有了解过Storyboard,也简单使用过,但随着最近深入了解它之后,发现自己低估了它的作用和影响力,因此在这里总结下最近段时间学习到的内容,希望对Storyboard初学者有所帮助。Interface Builder的界面布局如下图:   (图片来自Apple官网) 1.基础概念 在学习St

gongyuhonglou的博客 392

iOS xib 界面构造心得

1:自定义view 自定义的cocoa touch view继承 UIView类;然后创建新的xib,设置其相关联的class;在xib中需要先创建各个view的IBoutlet,这样Files's Owner才能将其IBoutlet绑定。 2:AutoLayout 使用autolayout时,可以先将整个页面布局先拉拉好,然后再创建相对应的constraints,这样做的话,Int

andy812110的专栏 460

如何在UIScrollView的xib上添加子控件并添加AutoLayout约束

引言 自从苹果推出了autoLayout之后,作为开发者,深深的体验到了他的便捷之处,再也不用为适配不同屏幕布局UI而烦恼,我们仅仅需要和类关联一个xib文件,想上面放置我们需要的控件xib,并打好其相对于父视图以及同级视图的约束关系,这样我们就做好了不同屏幕的适配。但是奇怪的是UIScrollView上添加子控件,和之前的一样的操作,报的错却很吓人,那是为什么呢? 原因分析 因为UIScroll...

连锁销售郑秋冬 487

iOS 开发可视化编程之Xib 简述

iOS应用是非常注重用户体验的,在某些方面上应用的成功与否于UI界面是否漂亮,以及应用交互设计上有着非常重要的关系 随着iOS开发发展至今,在UI制作上大概分为三个流派: 1.使用代码手写UI和布局 2.使用Xib文件来组织UI 3.使用StoryBoard故事板 关于三者的优缺点以及应用的场景请移步代码手写UI,xib和StoryBoard间的博弈,以及Interface Buil

qq_24732141的博客 796
上一篇: iOS AutoLayout: 关联 Xib 和 UIViewController
下一篇: iOS AutoLayout: UIView 关联 Xib 不设置 File's Owner
veryitman
博客等级 码龄16年 472粉丝 310原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值