0

我正在开发一个应用程序,它使用许多相同大小的 UIView,具有相同的两个标签(尽管标签中的文本不同),我认为我应该在这里使用一些抽象并使用内置标签创建一个 UIView 子类。

我需要该类创建相同大小的视图,并在该视图的同一位置创建两个标签。如果我可以绕过视图的角落,可以加分。

我该怎么做呢?

4

2 回答 2

1

当我必须在多个地方重用视图时我会做什么我为它创建一个带有 .xib 文件的自定义 UIView(使用 .xib 文件设置 UI 非常容易)并创建一个加载 nib 并创建的方法该类的新实例。我还为它提供了额外的设置方法,所以在你的情况下,我会创建类似的东西:

  1. 带有 .xib 文件的 UIView 的子类,我将在所需位置添加两个标签。
  2. @propertie(nonatomic, weak) IBOutlet UILabel *fitstLabel;为第二个标签创建一个和一个。(链接插座时要小心(将它们链接到视图而不是文件的所有者)
  3. 创建一个+(YourViewName*)instantiateViews;方法或任何您想调用它的方法,并在实现中执行以下操作:

    +(YourViewName *)instatiateViews { NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"TheXibFileName" owner:nil option:nil]; 返回[查看objectAtIndex:0];}

  4. 添加其他设置方法以满足您的需求。

对于视图的圆角,您必须#import <QuartzCore/QuartzCore.h>创建如下方法:

-(void)setViewsRoundedCornersWithCornerRadius:(CGFloat)radius {
     self.layer.cornerRadius = radius;
}

现在,当您想要此自定义视图的新实例时,您只需调用:

YourViewName *customView = [YourViewName instantiateViews];

之后,您可以调用所有设置方法。

于 2013-05-17T20:51:40.983 回答
1

分阶段进行。首先创建您自己的自定义UIView类。也许设置背景颜色,以便您可以设置它。更新您的代码以使用此自定义视图。

一旦完成并工作,就进入下一个级别。让自定义视图创建两个标签并将它们添加到自身。从标签中的硬编码文本开始。玩弄正确的大小和位置。这可以通过适当的框架大小和autoresizingMask值来完成,或者您可以覆盖该layoutSubviews方法来手动定位和调整标签大小。

一旦可行,更新类以提供允许此类用户设置两个标签的文本的属性或方法。

最后,设置视图层,使其使用圆角和边框。

将这样的问题分解成小步骤可以让你让每一个小步骤都能正常工作。不要试图一次编写所有代码,然后尝试找出它为什么不起作用。

如果您遇到困难,这也允许您就 SO 提出更详细的问题。或者更好的是,它缩小了您的关注范围,因此您可以阅读文档并搜索处理该细节而不是整个问题的相关示例。

于 2013-05-17T20:06:11.593 回答