iOS開發技巧(系列十:UITableView及其Cell的一些細節)

今天看開源代碼,有些UITableView方面細節的東西,整理了與你們共享,spa

一、設置UITableViewCell的accessoryView設計

有時候咱們須要設置cell的一些樣式,好比下圖,3d

這個就是設置了cell的accessory屬性的內容,若是咱們想在上面顯示Switch,則能夠經過下面的代碼,orm

cell.accessoryView = _modelSwitch;對象

這樣就是用一個UISwitch對象_modelSwitch賦值給cell.accessoryView,固然你能夠用任何UIView子類控件例如UILabel、UIButton。。。對象來給cell.accessoryView賦值,這樣界面上面就會顯示你想要的效果了。圖片


二、設置UITableViewCell的accessoryType文檔

若是但願cell上面顯示一個淺灰色的箭頭,能夠經過accessoryType來達到目的,代碼以下,it

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;io

這樣就設置了箭頭裝的type,咱們能夠設置多種類型,蘋果定義的枚舉類型以下,table

typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) {

    UITableViewCellAccessoryNone,                   //不顯示任何的accessoryView

    UITableViewCellAccessoryDisclosureIndicator,    //淺灰色箭頭圖標

    UITableViewCellAccessoryDetailDisclosureButton, //顯示詳情的按鈕

    UITableViewCellAccessoryCheckmark,              //就是你考試時候打鉤的鉤形狀

    UITableViewCellAccessoryDetailButton NS_ENUM_AVAILABLE_IOS(7_0) //

};

讀者能夠逐個試一試,找到本身想要的效果。若是上面的效果都不讓人滿意,那隻能自定義cell,而後在cell上面放上UIImageView,並貼上本身設計的圖片了。


三、設置UITableViewCell的點擊風格selectionStyle,

有的時候咱們須要點擊cell時候相應的cell背景加深的效果,有的時候咱們不須要,這時候可使用下面的語句來實現,

settingCell.selectionStyle = UITableViewCellSelectionStyleNone

查看文檔中的枚舉類型以下,

typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) {

    UITableViewCellSelectionStyleNone,

    UITableViewCellSelectionStyleBlue,

    UITableViewCellSelectionStyleGray,

    UITableViewCellSelectionStyleDefault NS_ENUM_AVAILABLE_IOS(7_0)

};

讀者能夠逐個試一試,這裏只是拋磚引玉,再也不贅述。


四、返回前一個頁面的時候,cell去除點擊效果

當咱們點擊cell,push進入下一個頁面,而後再返回前一個頁面的時候,這時咱們發現cell有背景加深的效果,以下圖所示,

想要去掉這種效果,只要在-(void)tableView...didSelect中添加以下代碼,

#pragma mark - UITableViewDataSource method

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

{

    //....

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

}

這樣在返回前一個頁面的時候,以前選中的cell就沒有背景加深的效果了,以下圖所示,

本人建了一個iOS交流羣188647173,歡迎各位iOS大神前來交流。

相關文章
相關標籤/搜索