我正在使用SDCAlertView
(https://github.com/Scott90/SDCAlertView)及其contentView
属性制作应用,以便显示UITableView
。当我尝试滚动表格时会出现问题。
以下是我如何分配警报:
SDCAlertView *soundAlertView = [[SDCAlertView alloc] initWithTitle:@"Select Sound" message:@"Select a sound." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
//Give the alert a tag for later id'ing
soundAlertView.tag = 2;
这是我创建表格的方法,然后将其添加到警报的子视图中:
//Create the tableview controller
SelectionViewController *soundSelection = [self.storyboard instantiateViewControllerWithIdentifier:@"selectionCont"];
//assign the table to a local var
UITableView *table = soundSelection.tableView;
UIView *tableHolderView = [[UIView alloc] initWithFrame:CGRectMake(table.frame.origin.x, table.frame.origin.y, soundAlertView.contentView.frame.size.width, 200)];
[tableHolderView addSubview:table];
//Add the table view to the alert view
[soundAlertView.contentView addSubview:tableHolderView];
然后我添加约束以使tableview适合警报,然后显示警报:
//Make sure the tableview fits in the alert
[soundAlertView.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableHolderView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(tableHolderView)]];
[soundAlertView show];
进行研究后,我发现我应该将contentView
到contanerView
的触摸传递给tableView
。虽然这可行,但它需要子类化,我不能继承子类访问contentView
属性。
如何让tableView
识别警报contentView
识别的触摸和滚动?
由于
答案 0 :(得分:0)
我想出来了,诀窍是将SDCAlertView
本身子类化,然后将hitTest:
发送到tableview。
答案 1 :(得分:0)
将BOUNCES UITableView的属性设置为YES,解决了我。