2009-12-27 26 views
2

當我在tableview中選擇一個單元格時,單元被accessoryTypeCheckMark推向左邊。accessoryType在左邊的對勾縮進UITableViewCell

我的自定義單元格以編程方式插入的tableview

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath: 
            indexPath]; 
    if (selectedCell.accessoryType == UITableViewCellAccessoryNone) { 
     selectedCell.accessoryType = UITableViewCellAccessoryCheckmark; 
    } 
    else { 
     selectedCell.accessoryType = UITableViewCellAccessoryNone; 
    } 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

} 
+0

這裏有問題嗎? – marcc

+0

我認爲他不希望細胞的內容縮進,當複選標記可見時... – Jasarien

+0

嗨jasarien,沒錯!謝謝 – zerlphr

回答

-1

根據您的單元格的內容(具體而言,這取決於多遠文本延伸的權利),內容將被重新吸引到騰出空間讓複選標記出現。

如果您不想讓文本移動,您需要使用自定義單元格子類自己繪製單元格內容。

+0

嗯,我嘗試將自定義單元格中的UILabel的長度減少50,但它不會消除縮進。 – zerlphr

+0

佈置自己的子視圖並沒有幫助。顯示覆選標記仍然會縮進子視圖。 –

+0

@VictorBogdan此答案旁邊的複選標記似乎與您不同意。根據我自己的經驗,這是我解決這個問題的方法。 – Jasarien

1

我正在撕掉我的頭髮,但幸運的是我能夠在Interface Builder中爲我的子視圖打開左側的自動調整約束,以保持它與單元格左側對齊。寬度和右側約束被禁用。在我的情況下,無論是否顯示UITableViewCellAccessoryCheckmark,都會將100像素寬的UIView固定在單元格的左側,即使表格單元格寬度發生變化,也會保持寬度不變。

+0

這不是一個最佳的解決方案,嘗試進入肖像模式,看看會發生什麼。 –