仿天貓商城商品詳情展示洞焙,導(dǎo)航欄滑動漸變快速集成工具

好長時間沒怎么更新簡書了蟆淀,最近也比較閑,在公司逛天貓商城的時候感到什么都買不起啊澡匪,只能仿著天貓商城商品展示界面自己動手實現(xiàn)了一下效果打發(fā)一下時間嘍熔任,我主要實現(xiàn)了兩個效果。這個快速集成工具和demo已上傳到我的github唁情,感興趣的可以star一下我疑苔。

  1. scrollview滑動導(dǎo)航欄漸變效果,這個效果說不上新鮮甸鸟,我就簡單封裝了個工具類惦费,方便大家快速集成這種效果吧

    我實現(xiàn)的導(dǎo)航欄漸變效果

  2. 完整實現(xiàn)了仿天貓購物商城商品展示界面

    天貓商品詳情展示效果

    好了,效果看了就著手實現(xiàn)吧抢韭。

一.導(dǎo)航欄滑動效果 NavBarSliderTool中實現(xiàn)主要代碼

NavBarSliderTool.h 代碼


NavBarSliderTool.h

NavBarSliderTool.m實現(xiàn)主要代碼

//設(shè)置navigation bar 背景圖片和陰影圖片為一個空白圖片
[viewController.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsCompact];
[viewController.navigationController.navigationBar setShadowImage:[UIImage new]];

此時發(fā)現(xiàn)navBar下面有一條灰線薪贫,不要緊張
viewController.navigationController.navigationBar.clipsToBounds = YES;去除灰線即可
我一般設(shè)置tableView坐標(biāo)是這樣的

self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, kUIScreenWidth, kUIScreenHeight) style:UITableViewStylePlain];  
//這個屬性默認(rèn)打開的,我們手動關(guān)閉
self.automaticallyAdjustsScrollViewInsets = NO;
//設(shè)置底部內(nèi)邊距為49防止被tabbar遮擋內(nèi)容
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 49, 0);```
這時候我們NEW一個跟導(dǎo)航欄同樣大小的view篮绰,放在最上層  

_navBarBgView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kUIScreenWidth, 64)];
_navBarBgView.backgroundColor = self.barColor;
_navBarBgView.alpha = 0;
//放置在最上層
[viewController.view insertSubview:self.navBarBgView atIndex:viewController.view.subviews.count];

現(xiàn)在我們只需要監(jiān)聽scrollview的偏移進(jìn)行相應(yīng)操作即可  

[scrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];

實現(xiàn)函數(shù)
![1.png](http://upload-images.jianshu.io/upload_images/1663049-f3c012bae47559d7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在viewController中設(shè)置相應(yīng)屬性`@property (nonatomic, strong)NavBarSliderTool * sliderTool;`實現(xiàn)以下代碼  

_sliderTool = [[NavBarSliderTool alloc]init];
_sliderTool.barColor = [UIColor redColor];
[_sliderTool setViewController:self scrollview:self.tableView];

這時候這個簡單的效果已經(jīng)完成了后雷,不懂得可以運行一下demo。
***
######二 完整實現(xiàn)了仿天貓購物商城商品展示界面
1. 首先分析一下整個詳情界面
首先出現(xiàn)在我們眼前的分為上下兩個部分,上邊是原生的臀突,下邊是一個webview勉抓,兩者通過滑動操作,進(jìn)行坐標(biāo)的切換候学,輪換展示給用戶藕筋。我們將上部原生tableview往下拉的時候,發(fā)現(xiàn)它下層還有一層視圖梳码,我是用tableview實現(xiàn)的隐圾。所以我實現(xiàn)的方式是整個界面大致分成兩層岔冀,最底層tableView是一層括饶,webview和另一個tableView是在同一層級。  
如圖
![上下兩個圖層](http://upload-images.jianshu.io/upload_images/1663049-4335f61aa60d11a3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)  
2. 上下兩層視圖切換的時候 titleview是滑動的靴迫,我為了方便titleView用了一個scrollview來實現(xiàn)上下打到切換效果實現(xiàn)如下:
![設(shè)置導(dǎo)航欄titleView.png](http://upload-images.jianshu.io/upload_images/1663049-8308f8c66531ac42.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)  
3. 上下兩個視圖切換效果 我在函數(shù)`- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate`通過判斷拖動結(jié)束之后的偏移量設(shè)置上下兩個視圖的坐標(biāo)切換 主要代碼
![上下視圖切換效果.png](http://upload-images.jianshu.io/upload_images/1663049-783b6e94f32cea12.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. tableView上滑過程會有一個視圖誤差 
![tableVIew向上滑動時改變約束進(jìn)行視差動畫.png](http://upload-images.jianshu.io/upload_images/1663049-6559ebe126a31bd3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)  
代碼如下  

contraint = contraint * .6;
if (contraint <= 0) {
contraint = 0;
}
[self layoutIfNeeded];
[UIView animateWithDuration:.1 animations:^{
_midViewTopContraint.constant = -contraint;
[self layoutIfNeeded];
}];

>注:約束動畫 需要調(diào)用[self layoutIfNeeded];才會有效  
5. 底層視圖出現(xiàn)后 有一個毛玻璃效果
![毛玻璃效果.png](http://upload-images.jianshu.io/upload_images/1663049-08ae14efec393979.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)  
實現(xiàn)代碼如下  

//設(shè)置模糊效果
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, imageView.width, imageView.height)];
toolbar.barStyle = UIBarStyleBlackTranslucent;
[imageView addSubview:toolbar];

>差不多主要功能介紹完畢了濒蒋,因為寫的比較匆忙吧盐碱,代碼質(zhì)量還有待優(yōu)化,歡迎大家提出寶貴意見沪伙。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓮顽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子围橡,更是在濱河造成了極大的恐慌暖混,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翁授,死亡現(xiàn)場離奇詭異拣播,居然都是意外死亡,警方通過查閱死者的電腦和手機黔漂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門诫尽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炬守,你說我怎么就攤上這事牧嫉。” “怎么了减途?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵酣藻,是天一觀的道長。 經(jīng)常有香客問我鳍置,道長辽剧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任税产,我火速辦了婚禮怕轿,結(jié)果婚禮上偷崩,老公的妹妹穿的比我還像新娘。我一直安慰自己撞羽,他們只是感情好阐斜,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诀紊,像睡著了一般谒出。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上邻奠,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天笤喳,我揣著相機與錄音,去河邊找鬼碌宴。 笑死杀狡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贰镣。 我是一名探鬼主播捣卤,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼八孝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸠项,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤干跛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后祟绊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體楼入,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年牧抽,在試婚紗的時候發(fā)現(xiàn)自己被綠了嘉熊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡扬舒,死狀恐怖阐肤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情讲坎,我是刑警寧澤孕惜,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站晨炕,受9級特大地震影響衫画,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓮栗,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一削罩、第九天 我趴在偏房一處隱蔽的房頂上張望瞄勾。 院中可真熱鬧,春花似錦弥激、人聲如沸进陡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽四濒。三九已至,卻和暖如春职辨,著一層夾襖步出監(jiān)牢的瞬間盗蟆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工舒裤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喳资,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓腾供,卻偏偏與公主長得像仆邓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子伴鳖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫节值、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,030評論 4 62
  • *7月8日上午 N:Block :跟一個函數(shù)塊差不多榜聂,會對里面所有的內(nèi)容的引用計數(shù)+1搞疗,想要解決就用__block...
    炙冰閱讀 2,473評論 1 14
  • 2點,HP電腦裝好系統(tǒng)和軟件须肆,歇一會兒匿乃,喝杯茶。 才坐下豌汇,茶還沒喝呢幢炸,收壞電腦配件的老周來了。 請老周坐下聊天拒贱。老...
    秦連蘇閱讀 196評論 0 0
  • 那是在一個快到春節(jié)的冬天宛徊,看到一個來做心理咨詢的老太太,她被厚厚的羽絨服包裹著逻澳,或許是北方的天氣太過寒冷岩调,又或...
    南煦sunny閱讀 641評論 14 15
  • 房屋買賣委托書格式范本 :委托人:________,性別:____,________年____月____日出生, ...
    烏市敏媽閱讀 1,603評論 0 0