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 の時点で、ビューへのタッチは無視されることを承知しています。これを解決するにはどうすればよいですか?

私が試したことはうまくいきません:

透明または非表示またはアルファ = 0UIViewを設定して、tableView の偽の背景として機能する

同じ取引、タッチは無視されます。

UIViewtableView の上にサブクラスを作成し、サブクラスUIViewが tableView を nextResponder として使用する

どうやらUITableViewtouchesBegan/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 に答える