我有一个UIViewController,里面有一个ScrollView,我有一个单独的UIView(没有连接到视图控制器),它有一个文本标签,而imageView--它的高度是200px。
基本上我想实例化一堆单独的UIViews,设置它们的文本标签和图像,然后将它们作为子视图添加到ScrollView。我不清楚设置它的最佳方法是什么..我的UIView应该是一个单独的UIViewController类,我应该将它们添加为子视图控制器吗?或者UIView类可以是.xib的文件所有者吗?
答案 0 :(得分: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
如果要添加此视图的多个实例,只需将其实际添加到scrollview。
在主控制器中,您可以运行循环来创建许多 someView 实例并为它们设置位置。
要遵循的代码:
Someview *instance = [[Someview alloc] initWithFrame:yourFrame];
[scrollview addSubview:instance];
答案 1 :(得分: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。
文件所有者设置为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