標籤:style blog color io os ar for sp 資料
上一節在自訂UITableView表視圖儲存格的基礎上,實現了一個簡單的表視圖介面,包含了一些自訂的介面元素在內。蘋果的產品從iPhone到MAC都提供了多種多樣的手勢操作以彰顯其操作的人性化,在如“郵件”等系統內建軟體的表視圖儲存格中,每個儲存格向左滑動即可在最右邊出現刪除按鈕,以方便使用者快速地對所選擇行執行刪除操作。其實實現這個功能並不難,僅僅只需要在ViewController中實現UITableViewDataSource協議中的方法
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
即使在方法定義中不執行任何操作,也能在儲存格向左滑動的時候出現刪除按鈕。
但是我最初在程式中添加上述方法的空聲明後,向左滑動卻並沒有出現想像中的“刪除”按鈕,幾經周折最後才發現原來是Main.storyboard選擇的autolayout約束錯誤,導致程式運行後最右邊的刪除按鈕實際上是在“藏”在螢幕之外了。解決方案:在Main.storyborad中按住control點擊tableview拖箱viewcontroller點擊選擇equal width 和 equal height即可建立約束,在裝置螢幕上完全顯示出表格的內容,也能看到刪除按鈕了。
事情到此還沒有完全結束,僅僅把刪除按鈕顯示出來是不夠的,如果確實需要在點擊對應的刪除按鈕後刪除所選擇的儲存格,還需要在上述方法中實現具體的刪除操作,即作用於後台資料的操作,比如:
[clubName removeObjectAtIndex:indexPath.row]; [clubLogo removeObjectAtIndex:indexPath.row]; [clubRank removeObjectAtIndex:indexPath.row]; [tableView reloadData];
並且重新載入該表視圖才可以正確顯示刪除的效果。
[菜鳥成長記]iOS開發自學筆記03-UITableView初級進階之cell的刪除