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

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

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

今天分享下cell的單選,自定義的,不是下圖這種網(wǎng)上找到的打?qū)吹?,我搜了好久,基本上都是打?qū)吹奈恼?,就決定自己寫一篇?;旧献约旱腶pp都會有一個風(fēng)格吧,咱也不能一直用打?qū)吹姆绞饺プ觯雌饋硎遣皇呛躭ow)。

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

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

首先在你自定義的cell里面加入一個UIImageView,因為你肯定要有選擇和未選擇兩張圖片的吧,所以這個UIImageView來切換圖片。

@property(nonatomic,strong)UIImageView *seletImage;

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

當(dāng)然,你需要在你自己的cell里面加入這個子視圖,以及初始化這個對象。下面代碼寫在相應(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);
 }];

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

@property(nonatomic)BOOL isSelected;

然后在回到這個cell中,我們需要用RAC來觀察這個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"]];
  }
}];

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

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

 //遍歷viewModel的數(shù)組,如果點擊的行數(shù)對應(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];
}

這里簡單解釋一下,因為每一個cell都有一個對應(yīng)的ViewModel,這個ViewModel又是放在ViewController的ViewModel數(shù)組中的。因此遍歷,取出對應(yīng)點擊行數(shù)的ViewModel,將參數(shù)更換,實現(xiàn)此效果。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

城市| 班玛县| 驻马店市| 林甸县| 高唐县| 涪陵区| 仁化县| 三都| 宁强县| 陇南市| 灌云县| 安仁县| 景洪市| 德昌县| 玛多县| 兴安县| 彭阳县| 富阳市| 闻喜县| 巧家县| 大港区| 沽源县| 金寨县| 周至县| 襄汾县| 泰安市| 凌海市| 鸡西市| 若羌县| 荥经县| 南陵县| 天门市| 锡林浩特市| 含山县| 友谊县| 焦作市| 琼海市| 麻栗坡县| 洪江市| 象山县| 榆社县|