关于用代码实例化对象与xib实例化文件调用方法的不同

Xib文件使用(一)——xib文件解析 使用Xcode做iOS项目,经常会和Xib文件打交道,因为Xib文件直观的展现出运行时视图的外观,所以上手非常容易,使用也很方便,但对于从未用纯代码写过视图的童鞋,多数对Xib的理解有些片面。 Xib文件是什么? A nib file describes the visual elements of your application’s user interface, including wi 阅读详情

相信大部分接触过xib与storyboard的开发者都对俩者描述控件赞不绝口,俩者的出现大大降低了开发者开发的时间,不用在设置UI浪费大量的时间和维护臃肿的代码,本文来说一说用代码实例化对象和xib实例化对象系统调用方法的不同

用代码实例化对象
  • 对于用代码实例化一个控件(CustomView)所需要的代码如下

CustomView *customView = [[CustomView alloc] init];
此时系统会调用对象的init方法,如果开发者需要在对象初始化时给对象的属性赋值就在对象的init方法中写入即可,如下
- (instancetype)init
{
if (self = [super init]) {
   self.backgroundColor = [UIColor blueColor];
   self.alpha = 0.5f;
   self.shopsLabel.text = @"商品";
}
return self;
}
需要注意如果创建对象是通过initWithFrame方法是不会调用init方法
的,系统会自动调用initWithFrame方法,而通过init方法创建对象也
会调用initWithFrame方法

通过xib加载对象
  • 用xib实例化对象方法需要注意Xib的文件名最好与文件的名字相同
[[[NSBundle mainBundle] loadNibNamed:@"CustomView"
owner:nil options:nil] lastObject];

此时系统会自动调用initWithCoder:aDecoder方法来初始化对象,而此时如果在initWithCoder:方法中设置对象属性
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder]) {
    self.backgroundColor = [UIColor blueColor];
    self.alpha = 0.5f;
    self.shopLabel.text = @"商品";
}
return self;
}
此时会发现对内部shopLabel.text设置没有作用。因为对象内部控件还没有实例化(也就是还没有被连线)需要在Xib文件加载完毕后才可以设置,解决方法是在awakeFromNib设置参数属性,如下
- (void)awakeFromNib
{
self.shopLabel.text = @"商品";
}



Xib文件使用(三)——Object的使用 继续看xib文件的一些组件,如: 图中Object,可以看作以一个临时的对象容器,如果有什么需要xib文件去创建的对象,便可以在将Object拖入xib文件,并设置。图中的External Object 是xib文件外的对象,但会和xib文件unarchive后的对象有关系,所以在xib中表示这些外部对象,使用的是占位符(placeholder),xib文件中的file's owner 阅读详情

相关推荐

IOS Xib使用——Xib表示局部界面

Xib文件是一个轻量级的用来描述局部界面的文件,在之前的文章讲解了为控制器添加Xib文件,本节主要讲解一下通过xib文件表示局部界面。 创建Xib文件   Xib文件创建的时候是选择User Interface里面的Empty模板创建,当然,如果你想创建一个新的欢迎界面,可以直接选择Launch Screen模板,此外,Storyboard文件也是在这选择。当你选择Empty模板时,

无名 797

实例化Storyboard和实例化Xib

实例化是指把拖拽界面代码化,Storyboard和Xib实例化差不多。 1、Storyboard实例化                                                                                                                                            

wudaye7的专栏 1148

IOS 使用XIB 自定义View

一般自定义View       代码方式 有       在初始化的时候添加 子Views - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // add subviews } return self; } 还有种 是自

li6185377的专栏 6万+

如何关联一个xib文件和一个类

开发环境:Xcode4@Lion 假设:xib文件为view.xib;类为ViewController(ViewController.h、ViewController.m); 步骤:1、点击选择view.xib。在主窗口点击左边图标栏的File’s  Owner图标,在Ins

Y's Blog 7133

SARScape实战:集成GACOS数据优化InSAR大气校正全流程

本文详细介绍了如何在SARScape软件中集成GACOS数据,以优化InSAR大气校正的全流程。通过实战步骤,从GACOS数据申请、下载、导入,到在单景干涉图和SBAS-InSAR流程中应用,有效剥离大气相位延迟,显著提升形变监测结果的精度与可靠性,实现从“雾里看花”到“拨云见日”的转变。

weixin_28419039的博客 399

CTP高频Tick数据:五档期货Level2深度解析20241224

高频Tick五档期货Level2数据,作为一种先进的金融市场分析工具,以其一秒四次的高频更新,为投资者揭示了市场的微观结构。本文将深入探讨这一数据如何帮助投资者洞察市场动态,优化交易策略,实现投资收益的最大化。

level2Tick的博客 1217

XIB总结(代码加载xib或xib拖xib)

view.xib的说明 View的custom cass是关联自身的 File’s owner是关联任意类的 方式一.xib拖xib 用File’s owner 方式二.代码加载,不向某个控制器关联控件 用View的custom class 一.代码加载XIB 1).只有xib文件 1.只有View1.xib文件 2.File’s Owner 和View1的Custom class都未设置 加载View的方法 UIView *v1 = [[[NSBundle mainBundle] .

az44yao的专栏 751

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍_nbiot ntn

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!” />你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

2401_83703866的博客 3164

Xib界面上的控件与代码的相互关联方法

比如工程中添加了一个UIViewController的sub class,新建的时候选中“With XIB for user interface”,则新建完成会同时生成三个文件:xxx.h, xxx.m, xxx.xib(前期也可是*.nib,xib和nib都指UI源文件,后来苹果统一用xib后缀名了)。 xxx.h默认内容: #import @interface xxx : UIView

她。 1677

Tiny windows 11 安装与部署

需要注意,安装完后键入 windows 键,输入 update 先更新系统。点击开始,等待完成即可,用户可自定义。

m0_73351035的博客 9046

安装了anaconda,pycharm导入numpy时提示没有该包(模块)?

**问题详情:**我安装了anaconda,在利用Pycharm学习numpy这个库的时候,导入numpy这个包的时候提示我没有nummpy这个模块:No module named numpy.如下图所示。 应该说安装了Anaconda,里边就自带了numpy这个库,就应该能够使用。我一个新手怎么搞得懂呢?于是网上查了查找到了一个解决办法,说是我项目的解释器应该设置为Anaconda安装目录下的python.exe,而不应该是系统自带的:https://blog.youkuaiyun.com/aanndd77/art

qq_39820505的博客 1万+

对象从xib中创建初始化完毕的时会调用的方法

对象从xib中创建初始化完毕的时会调用的方法/** * 当一个对象从xib中创建初始化完毕的时候就会调用一次 */ -(void)awakeFromNib {}// 注:通过代码创建初始化一个对象的时候,才会调用init方法

碎语1992 2183

QoderWake 与 Qoder 工具生态详解

Qoder CLIQoder SDKQoderWake谁在用你(开发者)你的程序你的数字员工谁在跑你的终端会话你的应用进程Daemon 后台进程什么时候跑你启动时你的代码调用时7×24 持续运行怎么触发键盘输入函数调用定时/事件/API/IM有记忆吗会话级 + 文件无多层持久记忆能协作吗Subagent多 Waker + IM 群组核心价值编码效率集成灵活性自主生产力一句话总结。

驽马不舍 950

xib、storyboard文件的使用

xib文件的使用1.基于UIViewController子类的xib的使用这种情况下使用很简单,对VC直接alloc,init就可以,VC会自动去找自己对应的xib文件,即使我们自定义了一些init方法,也不需要对加载他的xib做处理,系统会自动帮我们找是否有与其对应的xib文件,例如我们有这样一个初始化方法- (instancetype)initWithCustemData:(id)aData;我

CINNS的博客 619

threekingdoms.txt中文三国演义下载及实现人物出场统计

threekingdoms.txt全文下载:https://python123.io/resources/pye/threekingdoms.txt CalThreeKingdomsV1.py: #CalThreeKingdomsV1.py import jieba txt = open("threekingdoms.txt", "r", encoding = "utf-8").read() words = jieba.lcut(txt) counts = {} for word in words:

ZYYRWish_97的博客 1万+

喷涂机器人系列编程:ABB IRB 5500_(9).常见故障诊断与排除

ABB IRB 5500 喷涂机器人在实际应用中可能会遇到各种故障,但通过系统的诊断和排除方法,可以确保生产线的连续运行。定期维护和保养是预防故障的重要手段,而操作培训和规范则能有效减少人为因素引起的故障。希望本节内容能帮助操作和维护人员提高故障诊断和排除的效率,确保喷涂机器人的稳定运行。如果您有任何疑问或需要进一步的帮助,请联系 ABB 客户服务中心。

zhubeibei168的博客 1045

Xib文件使用(二)——关联变量

xib文件设计原则 1 始终用延迟加载设计nib文件,只用当nib文件中的这些对象马上就要使用时,才载入nib文件。 2 存储重复的用户界面组件(例如文档窗口)在单独的nib文件。 3 对于偶尔使用的窗口和菜单,存在一个单独的nib文件中,通过这样的方式,将在正真用到它的时候,再将其资源加载到内存。 4 使 File’s Owner为nib文件的单一外界出口。 xib文件通常与V

寻亚楠的专栏 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

在代码中调用Xib

在代码中调用Xib  现阶段,我体会到,界面的事情交给可视化工具去做,控制的事情交给代码去做,是不错的选择。      IB可视化工具最常规的用法是整个VC搭载一个配套的XIB文件。这个XIB文件对应VC.view。这篇文章记录的是如何灵活应用IB工具创建子View。       我们在看到UI设计稿时,头脑中首先思考的是区分界面功能块,考虑哪些界面元素有内在的相互关系,是否

冰冻三尺,非一日之寒 1172

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

storyboard中用xib文件创建定制的UITableViewCell对象

IOS5.0之后,在UITableView里可直接绘制自定义的UITableViewCell,还不会自定义UITableViewCell,直接传送门。要记得的是storyboard中的identifier(标识)一定要和代码中一致,用起来直观方便,似乎原来从xib(nib)文件中读取的时代,已经一去不复返了。但假设我们有UITableViewA和UITableViewB,我们在UITableVie

寻亚楠的专栏 1万+

xib的使用方法

xib的使用方法 有个观念一定要搞清楚,首先xib文件对应的是一个UIView。理解到位后,关于这类问题就是一通则百通。 情况一: 如果在创建控制器时选择了“同时创建xib文件”,如下图所示,则在创建该控制器时,直接使用 alloc] init] 就行了。可以这样理解,通过这种方式创建控制器的同时,创建了一个xib文件用来搭建此控制器的view。因此默认就是将该xib文件与创建的控制器是“绑定的”、“对应起来的”…… 情况二: 相对于情况一,那么情况二就是在创建控制器时没有勾选“同时创建x

youngIos的博客 3719

xib文件中创建多个视图

xib文件的创建和使用1)多个view的创建和使用(方法一)1.创建一个xib文件,然后设置这个xib文件中的属性,设置如下:a:file’s owner的类不需要设置,默认为nsobject类 b:在xib中添加四个view,然后分别设置view的属性如下: 设置Size为Freeform,即可自动调整视图大小. Status Bar 选择为 None.去除状态栏. 设置 vi

欢迎来到Jack的程序世界 5575

iOS XIB文件的简单创建使用

今天聊一下xcode使用xib文件创建view 1.创建一个叫XIBView的工程 2.添加一个叫TestView继承自UIView的类,添加一个同样叫TestViewUIView类型的XIB文件 3.代码与XIB文件关联,选择XIB文件,选择XIB文件左上角的File's Owner选项,选择右上角的第二行的第三个选项show the identity inspector的第一个分区的

小力子的专栏 6366

IOS中XIB与代码的关联使用技巧

在IOS开发中难免遇到页面控件很多,繁琐的时候,又不想去写代码,这时使用XIB来进行界面控件的布局是最省事的办法。 这里介绍一下简单的一些使用技巧: 一般来说都是创建视图控制器的XIB,视图控制器的XIB使用如下,

COOL_BEAR_XX的专栏 4826

xib学习周计划:1——xib文件的基本认识

近3年APP软件出现爆发式增长,开发迭代速度论天算,纯代码开发由来已久,目前在大厂,主流开发还是纯代码居多,为了协同和兼容低版本,个别大厂的老项目甚至是禁用xib开发的难过。中小公司的新产品线,为了开发效率,xib开发比例相对较大,并开始转向swift语言。我的前3个项目是用纯代码写的,最近的3个项目主要是xib为主,以下是我总结的xib的优缺点,这个问题其实相对主观,没有绝对,个人观点,仅供参考。

iOS学堂 966

xib的关联问题

1.在一个xib文件中设置File's Owner的目的是

LGH的专栏 743

UIViewController与xib文件是如何关联的

http://blog.youkuaiyun.com/devday/article/details/6736458 用xcode模板向工程加入UIViewController sub class的时候,如果选中了with xib for interface,那么就会向工作加入三个文件(.h .m .xib), 这样生成的三个文件除后缀名后都是一样的名字。 现在如果我们需要用这个刚加入的自定义U

mayimchen的专栏 844
上一篇: iOS NSString 和 NSData 的相互转换
下一篇: Magento后台Gird列表增持Action操作。
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值