我正在开发一个应用程序,它使用许多相同大小的 UIView,具有相同的两个标签(尽管标签中的文本不同),我认为我应该在这里使用一些抽象并使用内置标签创建一个 UIView 子类。
我需要该类创建相同大小的视图,并在该视图的同一位置创建两个标签。如果我可以绕过视图的角落,可以加分。
我该怎么做呢?
当我必须在多个地方重用视图时我会做什么我为它创建一个带有 .xib 文件的自定义 UIView(使用 .xib 文件设置 UI 非常容易)并创建一个加载 nib 并创建的方法该类的新实例。我还为它提供了额外的设置方法,所以在你的情况下,我会创建类似的东西:
@propertie(nonatomic, weak) IBOutlet UILabel *fitstLabel;
为第二个标签创建一个和一个。(链接插座时要小心(将它们链接到视图而不是文件的所有者)创建一个+(YourViewName*)instantiateViews;
方法或任何您想调用它的方法,并在实现中执行以下操作:
+(YourViewName *)instatiateViews { NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"TheXibFileName" owner:nil option:nil]; 返回[查看objectAtIndex:0];}
添加其他设置方法以满足您的需求。
对于视图的圆角,您必须#import <QuartzCore/QuartzCore.h>
创建如下方法:
-(void)setViewsRoundedCornersWithCornerRadius:(CGFloat)radius {
self.layer.cornerRadius = radius;
}
现在,当您想要此自定义视图的新实例时,您只需调用:
YourViewName *customView = [YourViewName instantiateViews];
之后,您可以调用所有设置方法。
分阶段进行。首先创建您自己的自定义UIView
类。也许设置背景颜色,以便您可以设置它。更新您的代码以使用此自定义视图。
一旦完成并工作,就进入下一个级别。让自定义视图创建两个标签并将它们添加到自身。从标签中的硬编码文本开始。玩弄正确的大小和位置。这可以通过适当的框架大小和autoresizingMask
值来完成,或者您可以覆盖该layoutSubviews
方法来手动定位和调整标签大小。
一旦可行,更新类以提供允许此类用户设置两个标签的文本的属性或方法。
最后,设置视图层,使其使用圆角和边框。
将这样的问题分解成小步骤可以让你让每一个小步骤都能正常工作。不要试图一次编写所有代码,然后尝试找出它为什么不起作用。
如果您遇到困难,这也允许您就 SO 提出更详细的问题。或者更好的是,它缩小了您的关注范围,因此您可以阅读文档并搜索处理该细节而不是整个问题的相关示例。