UITableView不响应透明区域的触摸

时间:2013-01-09 03:16:15

标签: objective-c ios uitableview quartz-core

我有UITableView透明backgroundColor,内部的单元格使用以下代码进行初始化

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
  self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  if (self) {
    self.label = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, CGRectGetWidth(self.contentView.frame), 180)];
    self.label.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    self.label.text = @"test";
    [self.contentView addSubview:self.label];
  }
  return self;
}

每行的高度为200,标签不会填满整个单元格。每个单元格之间将有透明部分。当我尝试通过触摸那些透明部分来滚动表格时,触摸完全被忽略。我知道,从iOS5开始,对视图的触摸将被忽略。我该怎么做才能解决这个问题?

我尝试过的东西不起作用:

设置透明或隐藏或alpha = 0 UIView作为tableView的虚假背景

相同的交易,触摸被忽略。

在tableView之上创建一个子类UIView,子类UIView使用tableView作为nextResponder

显然UITableView不使用touchesBegan / canceled / ends / moved,所以这不起作用。我认为实现我的方法来滚动UITableView也不明智。

将tableView的backgroundColor设置为[UIColor colorWithRed:0 green:0 blue:0 alpha:0.1]

我不想这样做,它仍然可见。

简而言之,即使我从透明部分开始滚动,我该怎么做才能滚动表格?

1 个答案:

答案 0 :(得分:0)

首先,您创建一个没有文本(或视图)的标签,使其完全填充单元格。然后使用您的文本创建一个新标签,并将其添加为第一个视图的子视图。