2012-10-03 93 views
0

所有, 我在用的的UITableView,並試圖實施編輯/刪除功能。的UITableView編輯/ delate-單元格的內容超出屏幕

當我打電話給這條線。

[tblStoreAvail setEditing:TRUE animated:TRUE]; 

單元格的內容不在屏幕上。

這些功能從未被調用過。

- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath 

- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath 

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 

UITableView Cell content goes out of screen

+0

而不是將右標籤作爲子視圖。將標籤設置爲accessoryView和EditingAccessoryView .. cell.editingAccessoryView = label; cell.accessoryView = label; – waheeda

回答

0

你得去上兩個問題,泰穆爾。 1)你需要將表的「delegate」設置爲保存這些委託方法的任何對象(可能是你的視圖控制器)。您可以通過編程方式或通過XIB/Storyboard中的連接來執行此操作。 2)如果您使用自定義單元格,則需要調整字體大小以容納要顯示的所有數據。

如果您沒有使用自定義UITableViewCell對象來顯示錶中的數據,那麼就開始使用它們,以便獲得您真正想要查看的格式。

1

如果您正在使用custuomTableViewCell實現以下方法與標籤您所需的幀:

- (void)willTransitionToState:(UITableViewCellStateMask)state 
{ 
    [super willTransitionToState:state]; 
if(state == UITableViewCellStateDefaultMask) 
    { 
     [self.lblLocation setFrame:CGRectMake(13,22,302,21)]; 
    } 
    else if(state == UITableViewCellStateShowingDeleteConfirmationMask) 
    { 
     [self.lblLocation setFrame:CGRectMake(13,22,245,21)]; 
    } 
    else if(state == UITableViewCellStateShowingEditControlMask) 
    { 
     [self.lblLocation setFrame:CGRectMake(13,22,245,21)]; 
    } 
    else 
    { 
     [self.lblLocation setFrame:CGRectMake(13,22,210,21)]; 
    } 
} 

如果您使用的默認TableViewCell然後確保設置委託的tableView做象下面這樣:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
yourCustomCell *cell = (yourCustomCell *)[tableView cellForRowAtIndexPath:indexPath]; 
[cell.lblLocation setFrame:CGRectMake(13,22,302,21)]; 
    return YES; 
}