編輯

2011-08-17 64 views
1

時如何縮進自定義的UILabel在一個UITableViewCell我有一個自定義的UITableViewCell,我想,當我打開這個縮進:編輯

[self.boatsDisplay setEditing:YES animated:YES];

任何人都可以提供我一個提示,或一些指導?

感謝

回答

4

你需要繼承UITableViewCell,並覆蓋-layoutSubviews。當單元格的編輯位設置爲YES時,將自動調用-layoutSubviews。在-layoutSubviews內進行的任何更改都會自動生成動畫。

考慮這個例子

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    CGFloat xPosition = 20.0f; // Default text position 

    if (self.editing) 
     xPosition = 40.0f; 

    CGRect textLabelFrame = self.textLabel.frame; 
    textLabelFrame.origin.x = xPosition; 
    self.textLabel.frame = textLabelFrame; 
} 
2

在你UITableViewDelegate可以使用tableView:indentationLevelForRowAtIndexPath:方法:

- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(tableView.editing == YES){ 
    return 1; // or higher integer 
    } else { 
    return 0; 
    } 
} 

,如果你想查詢你的自定義單元格只可以在如果條件添加&&[[tableView cellForRowAtIndexPath:indexPath] isKindOfClass:yourTableViewCell]