通過RAC封裝SegmentView

近來在項目中需要用到SegmentView。感覺設(shè)置起來非常不方便。所以打算自己封裝一個SegmentView.
使用到第三方庫為RAC;
最終效果如下


segmentView效果.gif

這個項目里面核心的一點是如何將自己封裝的SegmentView上的點擊信號傳送出來。在這里使用了RACSignal。
主要文件介紹
QXSegmentView(自定義的SegmentView)
ViewController(添加SegmentView的控制器)
點擊的時候再Q(mào)XSegmentView中調(diào)用

- (void)setSelectWithIndex:(NSInteger)select{
    if (self.currentSelect && self.currentSelect == select){
        return;
    }
    UIImage *imageClick = [UIImage imageNamed:self.arrayImageName[select]];
    [self.baseImageView setImage:imageClick];
    UILabel *labelSelect = self.arrayLabel[select];
    [labelSelect setTextColor:[UIColor grayColor]];
    UILabel *labelCurrent = self.arrayLabel[_currentSelect];
    [labelCurrent setTextColor:[UIColor blackColor]];
    _currentSelect = select;
    [self.subject sendNext:@(select)];
}

然后在添加SegmentView的ViewController中去訂閱此信號。實現(xiàn)代碼為

- (void)initRAC{
    [self.segmentView.signalClick subscribeNext:^(id x) {
        NSInteger index = [(NSNumber *)x integerValue];
        UIViewController *controller = self.arrayController[index];
        [self.view addSubview:controller.view];
        if (_currentSelect == index){
            return ;
        }
        UIViewController *currentController = self.arrayController[_currentSelect];
        [currentController.view removeFromSuperview];
        _currentSelect = index;
    }];
}

其他的就是在SegmentView內(nèi)部卻設(shè)置QXSegmentView的UI樣式了。這些可以自由發(fā)揮。
此項目在gitHub的地址為:https://github.com/wangqingxue/QXSegmentView
感謝觀看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • RAC使用測試Demo下載:github.com/FuWees/WPRACTestDemo 1.ReactiveC...
    FuWees閱讀 6,651評論 3 10
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實...
    香橙柚子閱讀 24,754評論 8 183
  • 從某種意義上來看,世間一切,都是遇見。就像,冷遇見暖,就有了雨;春遇見冬,就有了歲月;天遇見地,有了永恒;人遇見人...
    花開不散清風(fēng)自來閱讀 162評論 0 0
  • 我的精神和身體狀態(tài)越來越不好了,我能夠非常清楚的意識到。我刻意減少自己的食量,將中餐和晚餐的飯量減少到原來的一半。...
    安小姐的日記簿閱讀 269評論 0 0
  • 寫這篇文字的時候,正好是陰歷的生日,許愿的時候希望來年越來越好,沒有明確的目的,有些太過的貪心。說的具體些呢,我希...
    函數(shù)閱讀 317評論 1 1

友情鏈接更多精彩內(nèi)容