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

MATLAB实战:如何用Zernike系数模拟光学系统的点扩散函数(PSF) 本文详细介绍了如何在MATLAB中使用Zernike系数模拟光学系统的点扩散函数(PSF),涵盖从基础理论到实际应用的完整流程。通过Zernike多项式分解波前像差,结合衍射计算生成PSF,为光学系统性能评估提供量化指标。文章包含MATLAB代码实现、可视化技巧及工程优化建议,适合光学设计工程师和研究人员参考。 阅读详情

继续上篇iOS AutoLayout: 关联 Xib 和 UIView博客唠叨.

新定义一个 UIView 子类, 名字为 Custom2

新建 xib 文件, 这里取名为 Custom2.xib

看一下视图关系

图1

明显没有设置 File owner

图2

可以看出, Custom2 这个 View 的 Custom Class 是我们上面定义的 Custom2这个 UIView 的子类.

ok, 设置完毕.

将视图上面的元素拖拽到 Custom2这个类中.

代码示例如下:

#import <UIKit/UIKit.h>

@interface Custom2 : UIView

@property (strong, nonatomic) IBOutlet UIImageView *imageView;

@property (strong, nonatomic) IBOutlet UILabel *label;

@end
#import "Custom2.h"

@implementation Custom2

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

    if (self) {
        self.label.backgroundColor = [UIColor redColor];
        self.label.text = @"Successfully.";
    }

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

    return self;
}

@end

在 ViewController 中加载视图

_custom2View = [[NSBundle mainBundle] loadNibNamed:@"Custom2" owner:self options:nil].firstObject;
    _custom2View.frame = self.view.bounds;
    [self.view addSubview:_custom2View];

这里 _custom2View 就是 Custom2 实例对象.

来, 运行看一下效果.

图3

怎么刚才设置在 initWithFrame 里面设置的属性没有生效.

通过调试, 大家可以发现其实 initWithFrame 根本没有被调用.

修改一下 Costom2 的代码

@implementation Custom2

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

    if (self) {
        // 改变背景色
        self.backgroundColor = [UIColor redColor];

        self.label.backgroundColor = [UIColor redColor];
        self.label.text = @"Successfully.";
    }

    NSLog(@"CustomView2: initWithCoder... label: %@", self.label);

    return self;
}

- (void)awakeFromNib
{
    [super awakeFromNib];

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

@end

再次运行, 你会发现, 背景色是变了, 但是 label 还是没有改变.

这里说明一个问题, xib 加载时候会调用 initWithCoder 方法, 但是子元素(视图)这个时候并没有被实例化.

要想使用这些子元素, 需要在 awakeFromNib 中使用和改变.

@implementation Custom2

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

    if (self) {
        // 改变背景色
        self.backgroundColor = [UIColor redColor];
    }

    NSLog(@"CustomView2: initWithCoder... label: %@", self.label);

    return self;
}

- (void)awakeFromNib
{
    [super awakeFromNib];

    self.label.backgroundColor = [UIColor greenColor];
    self.label.text = @"Successfully.";

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

@end

运行可以看到效果.

图5

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

相关推荐

Delta-Sigma调制(DSM)技术

前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制(PCM)ADC受到了制造工艺的限制,无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺下实现高分辨率(大于16位),同时由于结构简单,所以易于实现。低成本高性能使得Delta-Sigma调制技术得到了广泛的应用。 Delta-Sigma型ADC的结构原理图如下图所示: 它最大的优势在于仅用1位ADC进行数据转换,同时其模拟电路部分结构简单不需要

阿星的博客 2万+

IOS之XIB结合UIView制作自定义组件

IOS之XIB结合UIView制作自定义组件 这里实现一个简单的进度条组件。用户可以自由设置进度条的进度、尺寸、文字颜色、进度条颜色、背景颜色。不同的是,我们这里创建的时候引入 xib 文件来实现布局。 1.定义一个ProgressView继承自UIView,由于继承自UIview ,XIB文件无发直接勾选创建,我们需要自己创建一个XIB文件ProgressView.xib ...

yong_19930826的博客 1249

Oracle VM VirtualBox虚拟机网络配置与静态IP设置实战

本文详细讲解了Oracle VM VirtualBox虚拟机的网络配置,特别是如何设置静态IP以实现稳定访问。文章对比了NAT、桥接、仅主机等网络模式,并提供了从VirtualBox管理界面到Linux系统内部的完整配置步骤,帮助用户解决IP变动问题,构建可靠的本地开发测试环境。

weixin_28365523的博客 512

自定义UIView(xib)方式--添加到其他ViewController上

使用XIB自定义UIView:   01:新建一个UIView继承自UIView。 02:新建一个xib文件,文件必须和上一步的自定义的UIView的名字一样。 03:在xib上添加各类控件。        重点:如何在其他ViewController中使用自定义的View         04:nib加载这个View     NSArray *nib = [[NSBundle

转身扭到脖子的专栏 1617

CZT与FFT频谱分析方法对比:从任意频带重采样到高精度频谱分析

M = 85 % 输出点数f0 = 70 Hz % 起始频率DELF = 0.4 Hz % 频率步长频率分辨率提高到0.4 Hz分析带宽聚焦在[70, 103.6]Hz更清晰地分辨出78Hz和82Hz的频率分量。

2403_88098319的博客 1863

数字摄影与摄像中的图像信号处理器(ISP):流程与经典算法详解

图像信号处理器(Image Signal Processor, ISP)是现代数字成像系统(如智能手机、数码相机、网络摄像头等)中的核心组件,扮演着将图像传感器(如CMOS或CCD)捕获的原始光电信号转换为高质量、可供观看或进一步处理的数字图像的关键角色。在数字摄影和摄像的整个链路中,光线首先通过镜头(Lens)聚焦到图像传感器上,传感器将光信号转换为模拟电信号,随后经过模数转换(A/D转换)变为原始的数字图像信号。

qq_44682523的博客 3731

Xcode中给UIView在xib中添加可视化的属性

xib中直接设置view 的 borderColor 、borderWidth、cornerRadius,也可以单独指定view的某个角是圆角。

biyuhuaping的专栏 967

SageMath下载与安装

SageMath的下载与安装

旺旺的碎冰冰~的博客 7516

UIView

UIView 视图是MVC中的V 坐标系 0,0  -> x | y Frame以父视图为起点 Bounds以系统原点为起点 Center表示视图中心点位置 创建UI2种方式,xib文件和代码创建 通过xib方式创建视图对象 NSBundle *bundle = [NSBundle mainBundle]; NSArr

恐高的菜鸟 360

安装matlab_Matlab+yalmip+cplex安装教程及算例

数学建模/科研学习推荐学习软件:Matlab+yalmip+cplex安装教程及算例其实绝大多数本科生都是在用Matlab和LINGO求解优化问题,Matlab可以求解一般优化问题,但是当优化问题规模比较大或者在应对一些非线性问题时候,Matlab会出现求解时间长,求解效率低,甚至难以求解等问题。Matlab+yalmip+cplex是Matlab通过调用商业软件cplex求解,求解时间短,这里简...

weixin_28939637的博客 5008

实战:从零构建第一个 HarnessAgent

本文介绍了如何从零构建第一个HarnessAgent项目。主要内容包括:1) 环境准备,要求JDK17+和Maven3.8+;2) 项目结构说明;3) 快速入门示例,包含工作区初始化、模型构建、Agent配置和对话演示;4) 多轮对话场景模拟。关键点在于通过sessionId实现对话状态保持,利用自动记忆沉淀和工作区持久化实现对话历史恢复。项目还展示了对话压缩配置,可在消息数达到阈值时自动压缩并保留关键事实,体现了HarnessAgent的核心能力。

公众号:AI前沿侦探 379

iOS开发,不推荐自己单独建xib关联一个UIView

我们创建UIView时,默认是没有xib选项的,那么如何让xib跟UIView关联?还有,为什么创建时默认没有xib,苹果这样做肯定有他自己的想法吧。 目前发现xib关联UIView,UIImageView的userInteractionEnabled设置无效。 ...

煮酒Shae 261

YOLO26涨点改进 | 独家创新,细节涨点改进篇 | CVPR 2025顶会 | YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文

本文给大家介绍Mona即插即用模块, 含MoCAA和DyTMona二次创新模块优化YOLO26模型。YOLO26引入 Mona通过引入多尺度视觉友好型卷积滤波器(如3x3、5x5、7x7深度卷积)和可伸缩归一化层来优化适配器设计,以更好地处理视觉信号并调节输入特征分布。YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文。适合目标检测、图像分割、图像分类等所有CV任务通用即插即用模块。

Ai缝合怪、助力小伙伴高效发论文 242

swift:使用xib布局文完成自定义UIView

当自定义uiview 时候有几种方法,这里使用 xib 文件布局控件 + uiview.swift 文件方式 实例如下: a) 新建UIview 文件: MyVolumeView 继承自UIView, 自定义的uiview 命名为MyVolumeView. 注意:这里,由于继承自UIView,无法选择同时创建xib文件。 b) 新建xib文件 name 同自定义的view: MyVolumeView, 新建后会有个xib文件在目录里。 c)指定xib 文件中的file's owner ...

Gabriel的专栏 1490

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

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

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

设置视图IOS开发(97)之自定义视图之使用XIB自定义一个UIView

本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~      1 前言     Xcode中集成的BI中的控件非常丰富,但有时候不免不能满足我们的需求,今天我们来学习一下如何使用XIB自定义一个UIView,做到复用的作用。      2 具体流程     目录视图:          2.1 新建一个single view application类型的iO...

weixin_34235371的博客 116

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【iOS】Xib的使用与File‘Owner总结

一、XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的,大范围.适合描述界面跳转等 .二、XIB的使用 Xib 是小范围的的 , 是轻量级的 . 比较适合描述小块的界面 .创建xib: 新建界面里面 user interface --》empty.加载xib: [NSBundle mainBudle] loadNibNamed :XXX …. ] 来加载 xib三、关于loadNibNameed方法 [[NSBundle..

az44yao的专栏 504

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

理解xib(nib)、File’s Owner、First Responder、IBOutlet、IBAction

xib(nib):对象的描述,类似与VC的.rc资源文件。 xib文件的内容格式为xml,可以在Xcode中通过界面编辑器直接进行可视化的界面编辑,内部存放着窗口和空间的各种属性。 nib是二进制格式,不可以直接编辑,xib通过编译生成nib文件,让程序需要显示界面时可以加载并解析文件内容,然后显示设计好的窗口。 File’s Owner:xib对应的类 比如UIView的File’s Owner...

Mac开发修炼之路 654

为UIView自定义Xib

一、需求  通过Interface Builder的形式创建Xib,并将其和一个UIView的子类绑定,如何实现? 二、解决  这个问题通过搜索,有大量的答案,大概答案的代码如下:     也就是在你的子类中,在初始化方法initWithFrame、initWithCoder中主动加载一个xib对应的类,作为子view添加到当前的view中  这种方式,会明显产生一个问题,会产生两个相同的自...

兜兜有????的博客 224

【iOS】Xib的使用与File'Owner总结

一、XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的, 大范围.适合描述界面跳转等. 二、XIB的使用 Xib是小范围的的,是轻量级的.比较适合描述小块的界面. 创建xib:新建界面里面user interface --》empty. 加载xib:[NSBundle mainBudl

xn4545945 1万+

xib中的 File's Owner的的理解

这两天在做 UI的美化,然后还牵扯到适配iPhone和iPad,索性把之前的布局全部改为xib,这其中就出现了在已有的.h 和 .m的基础上新创建xib文件,刚开始没注意,但是在一个页面跳转传值时遇到了一个问题,如果使用  alloc init 的方法,会提示  loadnib 没有view的iboutlet ,然后查阅网上各种资料,都说的很不是清楚,大概就是说file's owner 是view

sch1111878的专栏 2026

【iOS开发】Xib的使用与File's Owner总结

一、XIB的适用范围xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的,大范围.适合描述界面跳转等.二、XIB的使用Xib是小范围的的,是轻量级的.比较适合描述小块的界面.创建xib:新建界面里面user interface –>empty.加载xib:[NSBundle mainBudle]loadNibNamed:XXX….]来加载xib三

Hanrovey Blog 3613

iphone:file's owner以及outlet与连线的理解

xib文件本身可以看做是一个xml,app启动的时候会根据xml构造xib对应的界面及其控件, file's owner 可以看做是 xib对应的类,比如 view对应的xib文件的file'owner对应的就是 viewcontrol的类, outlet是针对xib文件中希望能够在外部引用的控件成员, 那么为什么要做outlet与file's owner 之间的连线呢? 这里file's

浓浓的巧克力 2920

IOS开发(97)之自定义视图之使用XIB自定义一个UIView

1 前言 Xcode中集成的BI中的控件十分丰富,但有时候难免不能满足我们的需求,今天我们来学习一下如何使用XIB自定义一个UIView,做到复用的作用。 2 详细流程 目录视图: 2.1 新建一个single view application类型的iOS application工程,名字取为CustomView,如下图,我们不往CustomViewViewController.x

Developer_Zhang的专栏 1万+

iOS AutoLayout: 关联 Xib 和 UIView

在博客 iOS AutoLayout: 关联 Xib 和 UIViewController 中介绍了 UIViewController 如何关联 xib 文件, 并给组件连线和一些问题.今天继续 Autolayout 的话题. 新建一个 Single View 的 iOS 项目 新建一个 Empty 的 Userinterface View, 取名为 View.xib 新建一

CodingMan 2815

ViewController的Custom class

View和ViewController之间的对应关系,需要一个桥梁来进行连接的(即,对于一个视图,他如何知道自己的界面的操作应该由谁来响应),这个桥梁就是File's Owner。      选中某个XIB的File's Owner,在Inspector中可以看到属性:File Name和Custom Class,该File's Owner就是用来绑定File Name中的xib文件和Custo

ios开发与测试 1482
上一篇: iOS AutoLayout: 关联 Xib 和 UIView
下一篇: iOS UI 技巧: 视图无法被点击
veryitman
博客等级 码龄16年 472粉丝 310原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值