2013-01-09 4 views
5

Iが透明backgroundColorUITableViewを有する透明領域でタッチに応答せず、細胞内部のUITableViewは

- (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の時点ではビューの操作が無視されることを認識しています。これを解決するために私は何ができますか?動作しない、私が試した

もの:のtableView

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

、タッチは無視されます。

はのtableViewの上にサブクラス化さUIViewを作成し、サブクラス化UIViewがnextResponderとしてのtableViewを使用しています

どうやらUITableViewは、touchesBeganを使用していない/キャンセル/終了/移動、これは動作しません。 UITableViewをスクロールする方法を実装することは賢明ではないと思います。私はこれを行うにはしたくない[UIColor colorWithRed:0 green:0 blue:0 alpha:0.1]

へのtableViewのbackgroundColorを設定

が、それはまだ目に見えるのです。

つまり、透明なセクションからスクロールを開始してもテーブルをスクロールするにはどうすればよいですか?

+0

親愛なる@Augustineさんは、他のスクロールメソッド( 'UIScrollview'で利用可能)を使用してあなたの仕事を達成することができます。なぜtouchesBeganメソッドで作業したいのですか? –

+0

私は触れた領域が透明であるために無視される前に接触を傍受するためにtouchesBeganを使うことができると思っていましたが、明らかに動作しません。 –

+0

私はscrollViewDidScrollとscrollViewWillBeginDraggingを配置しようとしました:tableViewのデリゲートでは、どちらも透過セクションからスクロールを開始するときに呼び出されます。 PSどのようにキーワードの灰色の背景を設定しますか?あなたのコメントでUIScrollviewとtouchesBeganのやり方と同じように。 –

答えて

0

まず、セルを完全に埋めるようなテキスト(またはビュー)のないラベルを作成します。その後、テキストで新しいラベルを作成し、これを最初のビューのサブビューとして追加します。

+0

残念ながら、残念ながら、最初のビューに 'backgroundColor'の' [UIColor clearColor] 'があります。 –