最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS中UITableView Cell實(shí)現(xiàn)自定義單選功能

 更新時(shí)間:2017年02月18日 16:59:03   作者:蘭州拉面nick  
本篇文章主要介紹了iOS中UITableView Cell實(shí)現(xiàn)自定義單選功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

今天分享下cell的單選,自定義的,不是下圖這種網(wǎng)上找到的打?qū)吹?,我搜了好久,基本上都是打?qū)吹奈恼拢蜎Q定自己寫一篇。基本上自己的app都會(huì)有一個(gè)風(fēng)格吧,咱也不能一直用打?qū)吹姆绞饺プ觯雌饋硎遣皇呛躭ow)。

我們要實(shí)現(xiàn)的是下面的這種形式。瞬間好看了很多,高大上了很多是吧。

具體我來給大家介紹一下。我這種方法有可能不是很好,有大神來,歡迎多多交流。

首先在你自定義的cell里面加入一個(gè)UIImageView,因?yàn)槟憧隙ㄒ羞x擇和未選擇兩張圖片的吧,所以這個(gè)UIImageView來切換圖片。

@property(nonatomic,strong)UIImageView *seletImage;

注意:這里面為啥沒用button,我主要考慮的是按鈕如果只有一個(gè)小圓圈這么大的話,就不好點(diǎn)擊。我的方法主要是結(jié)合UITableView中didSelectRowAtIndexPath這個(gè)代理方法實(shí)現(xiàn)的。

當(dāng)然,你需要在你自己的cell里面加入這個(gè)子視圖,以及初始化這個(gè)對(duì)象。下面代碼寫在相應(yīng)的位置。

 //添加到cell上
[self.contentView addSubview:self.seletImage];

//初始化
-(UIImageView *)seletImage{
if (!_seletImage) {
  _seletImage = [[UIImageView alloc]init];
}
return _seletImage;
}

//坐標(biāo)位置
[self.seletImage mas_makeConstraints:^(MASConstraintMaker *make) {
  @strongify(self);
  make.right.equalTo(self.contentView.mas_right).with.offset(-15);
  make.centerY.equalTo(self.self.contentView);
  make.height.mas_equalTo(22);
  make.width.mas_equalTo(22);
 }];

然后我們還需要一個(gè)cell的ViewModel來記錄cell中的各種數(shù)值變化,在這個(gè)ViewModel里我們加入一個(gè)參數(shù)用來判斷是否這一行cell被點(diǎn)擊。

@property(nonatomic)BOOL isSelected;

然后在回到這個(gè)cell中,我們需要用RAC來觀察這個(gè)isSelected的參數(shù)變化,替換圖片

  [[[RACObserve(self.viewModel, isSelected) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread] subscribeNext:^(NSString *x){
  @strongify(self);
  if ([x boolValue]==YES) {
    [self.seletImage setImage:[UIImage imageNamed:@"alarmsetting_selected"]];
  }else{
    [self.seletImage setImage:[UIImage imageNamed:@"alarmsetting_notselected"]];
  }
}];

好了,最后一步,讓我們回到這個(gè)cell對(duì)應(yīng)的ViewController中,在didSelectRowAtIndexPath上做文章。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  [tableView deselectRowAtIndexPath:indexPath animated:YES];

 //遍歷viewModel的數(shù)組,如果點(diǎn)擊的行數(shù)對(duì)應(yīng)的viewModel相同,將isSelected變?yōu)閅es,反之為No
  for (NSInteger i = 0; i<[self.viewModel.ItemArray count]; i++) {
    ItemViewModel *itemViewModel = self.viewModel.ItemArray[i];
    if (i!=indexPath.row) {
      itemViewModel.isSelected = NO;
    }else if (i == indexPath.row){
      itemViewModel.isSelected = YES;
    }
  }

  [self.tableView reloadData];
}

這里簡單解釋一下,因?yàn)槊恳粋€(gè)cell都有一個(gè)對(duì)應(yīng)的ViewModel,這個(gè)ViewModel又是放在ViewController的ViewModel數(shù)組中的。因此遍歷,取出對(duì)應(yīng)點(diǎn)擊行數(shù)的ViewModel,將參數(shù)更換,實(shí)現(xiàn)此效果。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS實(shí)現(xiàn)簡單長截圖

    iOS實(shí)現(xiàn)簡單長截圖

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)簡單長截圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • iOS實(shí)現(xiàn)圖片六邊形陰影效果

    iOS實(shí)現(xiàn)圖片六邊形陰影效果

    這篇文章給大家分享了如何利用iOS實(shí)現(xiàn)圖片六邊形陰影的效果,文中給出實(shí)現(xiàn)的示例代碼,對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • iOS開發(fā)CGContextRef畫圖使用總結(jié)

    iOS開發(fā)CGContextRef畫圖使用總結(jié)

    這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)CGContextRef畫圖使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼

    iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼

    如果你剛剛拍攝了圖片,在使用微信/QQ發(fā)生消息時(shí)會(huì)顯示“你可能要發(fā)送的圖片”,這個(gè)功能非常人性化,怎么實(shí)現(xiàn)的呢?下面小編給大家分享iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼,一起看看吧
    2017-03-03
  • iOS獲取本地音頻文件(屬性/信息)

    iOS獲取本地音頻文件(屬性/信息)

    這篇文章主要為大家詳細(xì)介紹了iOS獲取本地音頻文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • iOS實(shí)現(xiàn)水平方向瀑布流

    iOS實(shí)現(xiàn)水平方向瀑布流

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)水平方向瀑布流的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Xcode提高開發(fā)效率的代碼塊分享

    Xcode提高開發(fā)效率的代碼塊分享

    這篇文章跟大家介紹的是一些提高大家開發(fā)效率Xcode的代碼塊,以及如何備份代碼塊,Xcode的代碼片段(Code Snippets)創(chuàng)建自定義的代碼片段,當(dāng)你重用這些代碼片段時(shí),會(huì)給你帶來很大的方便。有需要的朋友們可以參考借鑒。
    2016-09-09
  • iOS開發(fā)實(shí)現(xiàn)簡單抽屜效果

    iOS開發(fā)實(shí)現(xiàn)簡單抽屜效果

    這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)實(shí)現(xiàn)簡單抽屜效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • iOS開發(fā)中不合法的網(wǎng)絡(luò)請(qǐng)求地址如何解決

    iOS開發(fā)中不合法的網(wǎng)絡(luò)請(qǐng)求地址如何解決

    這篇文章主要介紹了iOS開發(fā)中不合法的網(wǎng)絡(luò)請(qǐng)求地址的解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • iOS 基本動(dòng)畫、關(guān)鍵幀動(dòng)畫、利用緩動(dòng)函數(shù)實(shí)現(xiàn)物理動(dòng)畫效果

    iOS 基本動(dòng)畫、關(guān)鍵幀動(dòng)畫、利用緩動(dòng)函數(shù)實(shí)現(xiàn)物理動(dòng)畫效果

    這篇文章主要介紹了iOS 基本動(dòng)畫、關(guān)鍵幀動(dòng)畫、利用緩動(dòng)函數(shù)實(shí)現(xiàn)物理動(dòng)畫效果的相關(guān)資料,需要的朋友可以參考下
    2016-10-10

最新評(píng)論

漳州市| 水城县| 翁牛特旗| 贵州省| 方城县| 内丘县| 永寿县| 金川县| 威海市| 独山县| 无极县| 汉沽区| 上虞市| 抚州市| 金坛市| 依兰县| 分宜县| 梅州市| 全南县| 潮州市| 鄂州市| 廉江市| 天祝| 巨鹿县| 定西市| 罗江县| 道真| 静海县| 随州市| 横峰县| 福安市| 金溪县| 凌海市| 德江县| 闽侯县| 铅山县| 清镇市| 滦南县| 兴山县| 启东市| 玛曲县|