頂部表頭切換

今天本該閑著沒(méi)事,看看百度新聞就下班的,無(wú)奈被一個(gè)坑比讓我給他封裝控件。。。
我能怎么辦,我也很無(wú)奈啊。。。


基本了解需求之后,大概知道他要什么效果了,其實(shí)也很簡(jiǎn)單,自己以前做的項(xiàng)目也都用到了這個(gè),但是之前一直忙(可能是忘記了。。。),一直沒(méi)有做過(guò)相關(guān)的封裝,這次簡(jiǎn)單的來(lái)做一下封裝。。。其實(shí)前幾天做過(guò)一個(gè)更為復(fù)雜的,但是那個(gè)是借助了別人的封裝,所以也沒(méi)有發(fā)出來(lái),畢竟是別人的勞動(dòng)成果

二話不說(shuō),拿起鍵盤一頓敲?。?!

敲完了,效果出來(lái)了

Untitled1222..gif

(界面略丑。。。)

來(lái)說(shuō)下簡(jiǎn)單的思路

首先考慮到到封裝,很多屬性以及顏色需要使用,所以做了一個(gè)接口

- (void)ChoseColor:(UIColor *)choseColor notChoseColor:(UIColor *)notChoseColor lineColor:(UIColor *)lineColor choseLineColor:(UIColor *)choseLineColor linewidth:(float)lineWidth firstButtonTittle:(NSString *)firstButtonTittle secondButtonTittle:(NSString *)secondButtonTittle buttonWidth:(float)buttonWidth;

外部創(chuàng)建之后,直接去調(diào)用

TopSlideView *view = [[TopSlideView alloc] initWithFrame:CGRectMake(0, 200, self.view.frame.size.width, 60)];
    [view ChoseColor:[UIColor redColor] notChoseColor:[UIColor blueColor] lineColor:[UIColor grayColor] choseLineColor:[UIColor orangeColor] linewidth:2 firstButtonTittle:@"推薦模型" secondButtonTittle:@"我的模型" buttonWidth:100];

//    view.backgroundColor = [UIColor greenColor];
    [self.view addSubview:view];

這里因?yàn)橹挥袃蓚€(gè)按鈕,還是比較簡(jiǎn)單的功能,所以我就直接用了button(多的話可能會(huì)使用collectionView 這里我之后會(huì)再封裝一個(gè)collectionView的控件)

具體的實(shí)現(xiàn)思路:

1、點(diǎn)擊button,觸發(fā)響應(yīng)事件,相應(yīng)事件里面改變button字體的顏色,做成選中后的效果
2、button下方的線條,做一個(gè)動(dòng)畫過(guò)渡過(guò)去,看著會(huì)比較舒服

- (void)rightButtonAction {
    
    
    [self.leftButton setTitleColor:self.notchoseColor forState:(UIControlStateNormal)];
    [self.rightButton setTitleColor:self.choseColor forState:(UIControlStateNormal)];
    [UIView animateWithDuration:0.3 animations:^{
        CGRect rect = self.choseImageView.frame;
        rect.origin.x = CGRectGetMinX(self.rightButton.frame);
        self.choseImageView.frame = rect;
    }];
}

這里要注意,在獲取self.rightButton.frame,我們用 CGRectGetMinX(self.rightButton.frame),可以直接獲取到最左邊的X坐標(biāo),也就是最小的X坐標(biāo)

基本就是這些思路,如有要在下面嵌套一個(gè)tableView的話,也可以在button的觸發(fā)事件里,切換scrollView的ContentOffset,實(shí)現(xiàn)也不是很難

代碼在git里面,下面附上地址
https://github.com/bommmmmmm/head-change-with-animation

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

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,159評(píng)論 4 61
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評(píng)論 25 709
  • 《催眠的花園》是馬丁·圣詹姆斯催眠錄音,作為世界催眠及潛意識(shí)心理學(xué)領(lǐng)域的頂級(jí)大師,他的催眠錄音融合了心理學(xué)、語(yǔ)言學(xué)...
    幻想麗麗閱讀 3,796評(píng)論 2 3
  • 法律管制行為,道德約束仁心。 出了人命關(guān)天的大事,自然需要在法律和道德的共同作用下去解決。但最近輿論滔天的江歌被殺...
    蛋白匠閱讀 395評(píng)論 0 0
  • 風(fēng)嘯驚行人,行人欲斷魂,過(guò)路觀紅綠,明知山有虎,偏就任我行,猛虎不是虎,卻似食人虎,若問(wèn)行人言,驚飛剩一魂。
    囂張的筷子閱讀 154評(píng)論 0 0

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