将子视图添加到自定义类

时间:2015-06-24 06:36:00

标签: ios objective-c uitableview addsubview

我有一个UITextField,我想创建一个自定义类。所以我创建了一个子类为UITextField的文件。接下来,在自定义类中,我想实现tableView。有点像自动完成textField

我开始创建它,然后像这样添加tableView

[self addSubview:self.tableView];

当我运行该应用时,tableView位于textField,因此我只能看到tableView的一部分。如何将其添加为subview,以便我可以看到完整的tableView

2 个答案:

答案 0 :(得分:1)

这就是你要找的东西 https://github.com/gaurvw/MPGTextField

这个uitextfield子类可以满足您的需求 - 它可以用于“搜索”功能。 如果您仍想使用自己的, 将tableview添加到uitextfield本身,但是像

一样
[[self superview] addSubview:tableViewController.tableView];

修改

您可以将框架设置为:

 CGRect frameForPresentation = [self frame];
 frameForPresentation.origin.y += self.frame.size.height;
 frameForPresentation.size.height = 200;
 [tableViewController.tableView setFrame:frameForPresentation];

将子视图添加到uitextfield的方法是重载layoutSubviews方法并在那里初始化你的tableview:

- (void)layoutSubviews 
{ 
[super layoutSubviews]; 
if (!self.tableview.superview) 
{ 
[self setupView]; 
} 
}

答案 1 :(得分:0)

这会将tableView添加为textField

的子视图
self.tableView.frame = CGRectMake(0, CGRectGetHeight(self.bounds), CGRectGetWidth(self.bounds), YOUR_TABLE_HEIGHT);
[self addSubview:self.tableView];
self.clipsToBounds = NO;

然而,更好的方法是将tableView作为textField的superView的子视图,即textFieldtableView应该是兄弟。< / p>