欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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 設(shè)置導(dǎo)航條透明效果的實例代碼

    iOS 設(shè)置導(dǎo)航條透明效果的實例代碼

    本文通過實例代碼給大家介紹了ios 設(shè)置導(dǎo)航條透明效果,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-03-03
  • IOS使用NSUserDefault去實現(xiàn)界面?zhèn)髦岛蛿?shù)據(jù)存儲

    IOS使用NSUserDefault去實現(xiàn)界面?zhèn)髦岛蛿?shù)據(jù)存儲

    這篇文章主要介紹了IOS使用NSUserDefault去實現(xiàn)界面?zhèn)髦岛蛿?shù)據(jù)存儲的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • iOS實現(xiàn)調(diào)用QQ客戶端發(fā)起臨時會話

    iOS實現(xiàn)調(diào)用QQ客戶端發(fā)起臨時會話

    本篇文章主要給大家詳細(xì)分析了用IOS實現(xiàn)調(diào)用QQ客戶端發(fā)起臨時會話的功能,對此有需要的朋友收藏分享下。
    2018-02-02
  • 鍵盤彈出時會覆蓋文本框怎么解決

    鍵盤彈出時會覆蓋文本框怎么解決

    在一些網(wǎng)站登陸界面,我們經(jīng)常會見到,鍵盤的出現(xiàn)與隱藏操作,那么基于代碼是如何實現(xiàn)的呢?下面小編寫了具體代碼介紹,特此分享到腳本之家平臺,供大家參考
    2016-04-04
  • 混合棧跳轉(zhuǎn)導(dǎo)致Flutter頁面事件卡死問題解決

    混合棧跳轉(zhuǎn)導(dǎo)致Flutter頁面事件卡死問題解決

    這篇文章主要為大家介紹了混合棧跳轉(zhuǎn)導(dǎo)致Flutter頁面事件卡死問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • iOS中l(wèi)ebel特殊字符的自動換行問題解決

    iOS中l(wèi)ebel特殊字符的自動換行問題解決

    這篇文章主要給大家介紹了關(guān)于iOS中l(wèi)ebel特殊字符的實現(xiàn)不自動換行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)iOS具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • iOS捕捉截屏事件并展示截圖效果

    iOS捕捉截屏事件并展示截圖效果

    這篇文章主要為大家詳細(xì)介紹了iOS捕捉截屏事件并展示截圖效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • iOS封裝倒計時按鈕HLCountDownButton示例詳解

    iOS封裝倒計時按鈕HLCountDownButton示例詳解

    這篇文章主要為大家介紹了iOS封裝倒計時按鈕HLCountDownButton示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • iOS 獲得現(xiàn)在的時間代碼

    iOS 獲得現(xiàn)在的時間代碼

    本文通過實例代碼給大家介紹了iOS 獲得現(xiàn)在的時間的方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-06-06
  • iOS自動移除KVO觀察者的實現(xiàn)方法

    iOS自動移除KVO觀察者的實現(xiàn)方法

    在 Apple 的應(yīng)用開發(fā)里 KVO 提供了一個途徑,使對象(觀察者)能夠觀察其他對象(被觀察者)的屬性,當(dāng)被觀察者的屬性發(fā)生變化時,觀察者就會被告知該變化。下面這篇文章主要給大家介紹了關(guān)于iOS如何自動移除KVO觀察者的實現(xiàn)方法,需要的朋友可以參考下。
    2017-12-12

最新評論