知乎日报 ios 客户端首页 NavigationBar 的实现

2015-02-17 16:46:19 +08:00
 ltebean

知乎日报的导航栏做的很赞~但是ios里很难动态地修改navigation bar和status bar的颜色,所以写了一个UINavigationBar的Category:

https://github.com/ltebean/LTNavigationbar

实际效果如下:

6481 次点击
所在节点    iDev
17 条回复
Esay
2015-02-17 18:07:31 +08:00
赞。
提个小建议,能不能在用手势 push back 时也让 nav bar 动态变化
hewigovens
2015-02-17 18:07:54 +08:00
知乎日报那个应该没用 UINavigationController...
SeanChense
2015-02-17 19:03:14 +08:00
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
UIColor * color = [UIColor colorWithRed:0/255.0 green:175/255.0 blue:240/255.0 alpha:1];
CGFloat offsetY = scrollView.contentOffset.y;
if (offsetY > NAVBAR_CHANGE_POINT) {
CGFloat alpha = 1 - ((NAVBAR_CHANGE_POINT + 64 - offsetY) / 64);

[self.navigationController.navigationBar useBackgroundColor:[color colorWithAlphaComponent:alpha]];
} else {
[self.navigationController.navigationBar useBackgroundColor:[color colorWithAlphaComponent:0]];
}
}

这段逻辑有没有可能放到 `UINavigationBar+BackgroundColor.h` 里呢?
CDuXZMAPgHp1q9ew
2015-02-17 19:52:12 +08:00
应该可以吧 用kvo
ltebean
2015-02-17 22:19:43 +08:00
@hewigovens 嗯因该是没用navigation controller,感觉那样实现起来还更容易。 这个category主要是为了方便动态地改navbar的颜色~
ltebean
2015-02-17 22:24:15 +08:00
@SeanChense 这个category主要是为了能够动态地改navbar的backgroundColor~至于颜色是跟着scrollView走还是一个pan gesture或是其他什么触发条件还是要看具体app需要的
lyojo
2015-02-24 21:57:29 +08:00
为什么不设置navigationBar隐藏,然后放置一个透明的view,在view上面添加两个按钮,然后在tableview 的scrollview delegate的监听滚动事件方法里面去修改那个透明view的alpha值,这样比较简单。
satanwoo
2015-02-25 17:37:13 +08:00
@lyojo

如果没理解错的话,你的逻辑无法复用啊,至少从view上无法复用。
dopcn
2015-03-02 22:57:07 +08:00
cool
dopcn
2015-03-02 23:33:51 +08:00
请问这个 key backgroundOverlay 你是怎么找到的,view debugging 的时候只显示是一个 UIView
ltebean
2015-03-03 10:47:45 +08:00
@dopcn 这个view是后来插入进去的,就是靠它来改变backgroundcolor的
ashamp
2015-03-09 13:58:08 +08:00
准备下载下来看看 可能用得上
ashamp
2015-03-09 14:05:24 +08:00
下下来看了,效果确实不错!就是用的sb太不习惯 哈哈
ashamp
2015-03-09 14:19:58 +08:00
600多个star!厉害!
kepenj
2015-03-10 10:52:52 +08:00
Elethom
2015-03-11 07:08:12 +08:00
@satanwoo
看了下代碼,實現得確實非常糟糕。
satanwoo
2015-03-11 14:51:57 +08:00
@Elethom
。。。这你回复我干啥??

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/171512

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX