[英]Custom UIViewController and custom UIView
我有三个相似之处。 例如,位置30,30处的UIImageView和相同位置处的三个UILabel。
没有复制和粘贴或冗余代码的最佳解决方案是什么?
当我用笔尖创建所有三个视图时,我必须复制并粘贴相同的部分...
我开始实现自己的UIViewController和一个基本的UIView。 我的代码如下所示:
- (id)init {
if((self = [super init])) {
image = [[UIImageView alloc] init];
header = [[UILabel alloc] init];
[self addSubview:image];
[self addSubview:header];
}
return self;
}
- (void)layoutSubviews {
[super layoutSubviews];
image.frame = CGRectMake(30, 30, 20, 20);
header.frame = CGRectMake(30, 100, 200, 30);
}
当我将具有该视图的控制器推入堆栈时,该视图显示错误。 图片和标签由titleheader(navigationcontroller)覆盖...
有人可以解释一下这个布局系统的工作原理吗?ios sdk是我曾经使用过的最差的sdk :(
在笔尖中创建视图时,我看不到复制和粘贴的必要性吗? 它绝对消除了按代码定位视图的必要性。 顺便说一句:“最糟糕”的代码通常是我们不太了解的代码。
如果他们需要一套通用的内务处理代码要素,则可以采用一种方法,该方法将视图作为参数并在不违反DRY原理的情况下进行操作(顿兹重复您自己)
当我用笔尖创建所有三个视图时,我必须复制并粘贴相同的部分...
您是否认识到,像视图控制器这样的对象可能装载多个笔尖(甚至简单)? 您的所有三个视图控制器都可以从同一个nib文件加载接口的公共部分,也可以从自己的nib文件加载它们自己的接口。 一种方法是将公用接口的插座与管理公用接口所需的任何代码(设置,操作等)一起放在一个类中。 然后,您可以为每个不同的视图控制器创建该类的子类,并让每个子类加载自己的笔尖。 最后一步是将子类中的接口插入超类的视图层次结构中,或将父类中的接口插入子类的视图层次结构中,以您所处的情况为准。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.