2012-02-21 26 views
2

我有一個相當簡單的TableViewController列出了可以在收集時進行檢查的項目。我已經在每個單元格中成功實現了一個單詞包裝標籤,並更新了heightForRowAtIndexPath,使每一行都是合適的高度。這是正常工作:使用多行內容時的accessoryView對齊方式查看

注:我已經設置爲測試目的而細胞的內容查看一個花哨的背景顏色。

enter image description here

問題是當我嘗試添加複選標記按鈕,爲accessoryView的每一個細胞:

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; 

出於某種原因,對準不是我的細胞跨越多個完全正確一旦按鈕大小超過大約26x26像素,就會超過一行。

enter image description here

上面的例子使用44x44作爲按鈕的寬度。

任何人都可以解釋這裏發生了什麼?爲什麼在contentView是2線和1線時會有不同的對齊方式?事實上,對於文本使用的每條額外的行,對齊越來越關閉。如果有幫助,我可以添加行文本的代碼。

+0

附加信息 - 我確定這是造成問題的高度,而不是寬度。如果我將它設置爲44 x 26,它看起來沒問題。超過26歲,這是錯位的。 – 2012-02-21 02:39:28

+0

您是否嘗試相應地設置按鈕的「autoresizingMask」? – 2012-02-21 03:37:07

回答

3

我發現,這可以通過設置按鈕的高度在附件視圖以匹配將用於該行計算來解決。

所以,在heightForRow使用的代碼:atIndexPath:應該到的cellForRowAtIndexPath被複制和用於設置按鈕的高度。

0

我有同樣的問題,不幸的是我也不能解釋的奇怪行爲,我也沒有解決這個問題。但是,我提出了一些觀點,可能有助於其他人爲這個問題而努力。

我使用的是UIImageView作爲我的細胞附屬視圖,並結束了與圖像尺寸擺弄周圍。最終工作的圖像大小約爲16x16像素或更低。

正如我只是想一個相當微小的形象,這爲我工作。