0

我有一个 UIViewController,其中有一个 ScrollView,我有一个单独的 UIView(未附加到视图控制器),它有一个文本标签和 imageView——它的高度为 200px。

基本上我想实例化一堆单独的 UIView,设置它们的文本标签和图像,然后将它们作为子视图添加到 ScrollView。我不清楚设置它的最佳方法是什么。我的 UIView 是否应该只是一个单独的 UIViewController 类,我应该将它们添加为子视图控制器?或者 UIView 类可以是 .xib 的文件所有者吗?

4

2 回答 2

0

我假设您已经为您的视图创建了一个单独的类(带有 .h 和 .m 文件),例如Someview

Someview.h

@interface Someview : UIView

@property(strong) UITextField *field;

@end

Someview.m

@interface Someview ()

@end

@implementation Navigator
@synthesize field;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code

    }
    return self;
}

@end

如果要添加此视图的许多实例,只需将其务实地添加到滚动视图中即可。

在您的主控制器中,您可以运行循环来创建许多someView实例并为它们设置位置。

要遵循的代码:

Someview *instance = [[Someview alloc] initWithFrame:yourFrame];
[scrollview addSubview:instance];
于 2013-07-09T14:03:22.830 回答
0

您将(可以)以与从 UITableViews 的 xib 文件创建自定义 UITableViewCells 相同的方式执行此操作。

xib 文件仍将 FilesOwner 设置为使用它的 UIViewController,但是顶级元素将是您创建和自定义的 UIView 的子类。

在您的 UIViewController 中,实例化 xib 文件(使用 UINib),然后将其添加到您的 UIScrollView。

编辑:更详细一点:

您有一个自定义视图 MyView,它有一个 xib 文件 MyView.xib:

@interface MyView : UIView
    @property (strong, nonatomic) IBOutlet UILabel *myLabel;
@end

在 xib 文件中,顶层视图是 MyView(使用 cmd-alt-3)并将类从 UIView 更改为 MyView。

Files Owner 设置为 MyViewController - 然后您可以将新的引用插座从 MyView 拖动到 FilesOwner 以将它们链接起来。

在 UIViewController 中,您可以加载 MyView.xib:

UINib *myViewNib = [UINib nibWithNibName:@"MyView" bundle:[NSBundle mainBundle]];
[myViewNib instantiateWithOwner:self options:nil];

它将填充 UIViewController MyView 属性:即

@interface MyViewController : UIViewController
    @property (strong, nonatomic) IBOutlet MyView *myView;
@end
于 2013-07-09T14:09:38.297 回答