2012-02-21 8 views
2

かなり単純なTableViewControllerは、収集時にチェックできる項目をリストしています。私は各セルに単語ラップラベルを実装し、各行が適切な高さになるようにheightForRowAtIndexPathを更新しました。これはうまくいきます:複数行のcontentViewを使用している場合のaccessoryViewの整列

注:私はテスト目的のためにセルのcontentViewに華やかな背景色を設定しました。私は各セルのaccessoryViewとしてチェックマークボタンを追加しようとする

enter image description here

問題が来る:

UIImage *image = [UIImage imageNamed:@"checked.png"]; 

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    CGRect frame = CGRectMake(0.0, 0.0, 44.0, 44.0); 
    button.frame = frame; 
    [button setImage:image forState:UIControlStateNormal] 
    button.backgroundColor = [UIColor redColor]; 
    cell.accessoryView = button; 

何らかの理由で、アライメントがよりまたがる私の細胞のために非常に適切ではありませんボタンのサイズが約26×26ピクセルを超えると、1つのラインよりも大きくなります。

enter image description here

上記の例では、ボタンの幅として44x44を使用します。

誰でもここで何が起こっているのか説明できますか? contentViewが2行対1行の場合、異なるアラインメントが存在するのはなぜですか?事実、テキストが使用する余分な行ごとに整列がますますオフになります。行テキストのコードを追加すれば役立ちます。

+0

追加情報 - 私は、幅ではなく問題を引き起こすのがフレームの高さであると判断しました。 44×26に設定しても大丈夫です。 26歳以上で、それは整列していない。 –

+0

ボタンの 'autoresizingMask'をそれに応じて設定しようとしましたか? –

答えて

3

これは、アクセサリビューのボタンの高さを行の計算対象と一致するように設定することで解決できることがわかりました。

したがって、heightForRow:atIndexPath:で使用されるコードは、cellForRowAtIndexPathにコピーされ、ボタンの高さを設定するために使用されます。

0

私は同じ問題を抱えていましたが、残念ながら私は奇妙な行動を説明することも、解決しなかったのです。しかし、私はこの問題で苦労している他の人たちに役立つかもしれないいくつかの観察をしました。

私は自分のセルのアクセサリビューとしてUIImageViewを使用していますが、画像の大きさに注意を払ってしまいました。最後に働いたのは、約16x16ピクセル以下のサイズの画像でした。

私はほんのちょっとしたイメージがほしいと思ったので、これは私のために働いていました。

関連する問題