5

我有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 = 0UIView以充当 tableView 的假背景

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

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

显然UITableView不使用 touchesBegan/cancelled/ended/moved,所以这不起作用。我认为实现我的方法来滚动UITableView两者都不明智。

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

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

简而言之,即使我从透明部分开始滚动,我还能做些什么来滚动表格?

4

1 回答 1

0

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

于 2013-01-14T08:07:11.977 回答