我的自定义类是subclass
UIView
。我添加了UITextField
和tableview
作为subview
。然后,在storyboard
中,我将UIView's
类设置为自定义类。
我在自定义类中添加的tableview
扩展了大于最初的UIView
,(来自storyboard
)。所以我改变了self.frame's
身高。
当我运行该应用时,我可以输入我添加的textField
,但我无法在tableview
中选择任何内容。我可以看到cells
,但无法选择它们。
如何使cells
可选?
以下是最相关的代码:
_textField = [[UITextField alloc] initWithFrame:self.bounds];
[self addSubview:_textField];
CGRect tableViewsFrame = self.textField.bounds;
tableViewsFrame.origin.y += self.textField.bounds.size.height;
tableViewsFrame.size.height = 200;
_tableView = [[UITableView alloc] initWithFrame:tableViewsFrame style:UITableViewStylePlain];
[self addSubview:_tableView];
CGRect viewsFrame = self.bounds;
viewsFrame.size.height = self.textField.frame.size.height + self.tableView.frame.size.height + 100;
[self setFrame:viewsFrame];
以下是Jumpshare上的测试项目的链接:testProject
答案 0 :(得分:1)
您不小心将Selection
的{{1}}更改为TableView
。
修改强>
您可以将No Selection
添加到tableView
,例如:
window
我已经实现了一个简单的弹出视图:
tableViewsFrame.origin = [self.superview convertPoint:self.frame.origin toView:self.window];
tableViewsFrame.origin.y += self.textField.frame.size.height;
_tableView.frame = tableViewsFrame;
[self.window addSubview:_tableView];
然后你可以:
@interface SimplePopupView : UIControl
+ (void)showView:(UIView *)view fromView:(UIView *)fromView;
@end
@implementation SimplePopupView
+ (void)showView:(UIView *)view fromView:(UIView *)fromView {
UIView *window = [UIApplication sharedApplication].keyWindow;
SimplePopupView *popupView = [[SimplePopupView alloc] initWithFrame:window.bounds];
[popupView addTarget:popupView action:@selector(dismiss) forControlEvents:UIControlEventTouchUpInside];
[window addSubview:popupView];
CGRect viewFrame = fromView.bounds;
viewFrame.origin = [fromView convertPoint:fromView.frame.origin toView:window];
viewFrame.origin.y += fromView.frame.size.height;
viewFrame.size.height = 200;
view.frame = viewFrame;
[popupView addSubview:view];
}
- (void)dismiss {
[self removeFromSuperview];
}
@end
答案 1 :(得分:0)
问题是您没有增加表格视图单元格行高度并添加内容多于表格视图单元格高度。 在您能够选择表视图单元格之后,在代码中更改文本框架框架。
- (void)setupView
{
// Configure the TextField
_textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, 45)];
}
同时将第三个表格视图单元格高度更改为大于60或与视图大小相似。然后它将被选中。