• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

NoCodeNoWife/LLRiseTabBar-iOS: 仿淘宝闲鱼的 TabBar

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

NoCodeNoWife/LLRiseTabBar-iOS

开源软件地址:

https://github.com/NoCodeNoWife/LLRiseTabBar-iOS

开源编程语言:

Objective-C 100.0%

开源软件介绍:

LLRiseTabBar-iOS

仿淘宝闲鱼的TabBar (Objective-C 实现)

0x00 为什么做这个

从我由 Android 转 iOS 开发之后,曾接过一个项目,底部的 TabBar 就是设计成中间一个按钮凸起的样子的,平时玩的 App 不多,这样的设计也就在 Instagram 上看到过,但是那时候上网找资源也没找到比较好的 (也有可能是我没找到),所以那时候就没有做得很好,到后来,突然看到了一些 App 更新之后变成了中间一个按钮凸起的样子,想起了之前想要仿着咸鱼的 TabBar,但是一直没有动手去做,所以现在就动手开始做了。

Android 版

Android 版在 这里

0x01 进度

  • 2015-10-19 中午:花了一个晚上的时间,没做完,有一个问题是,在自定义的按钮上,没有显示设置好的 image,在系统的 UIButton 上就可以显示。 (TMD Google 了好久没解决,原来是我自己忘了在自定义按钮的 layoutSubviews 方法里面调用父类的 layoutSubviews 方法 = =||)
  • 2015-10-19 下午:中间发布按钮图片显示样式未调整好
  • 2015-10-19 晚上:完成

0x02 截图

官方 App 截图:

官方 App 截图

项目截图:

  • PNG:

  • GIF:

0x03 瑕疵

  • 当点击同城的时候,按钮会有变暗的效果,经过测试,发现是跟图片有关系 (@devtofu 给出了 解决办法):

/* -------------------- 2016-10-11 更新 -------------------- */

其实不用覆写 setHighlighted: 方法,只要设置 UIButton 的 adjustsImageWhenHighlightedNO 就可以了。

  • 因为 LLTabBarItem 是继承自 UIButton 的,在设置了 ViewController 的 tabBarItem 之后,在系统的 UITabBar 中生成的实际上是 UITabBarButton(通过 Reveal 看到的),而 UITabBarButton 是继承自 UIControl 的,所以和继承 UIButton 的效果有所差别,并没有和系统的 UITabBar 效果一样。感兴趣的可以继承 UIControl 试试看。

Usage

UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = @[...];

LLTabBar *tabBar = [[LLTabBar alloc] initWithFrame:tabBarController.tabBar.bounds];
tabBar.tabBarItemAttributes = @[@{kLLTabBarItemAttributeTitle : @"首页", kLLTabBarItemAttributeNormalImageName : @"home_normal", kLLTabBarItemAttributeSelectedImageName : @"home_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
                                @{kLLTabBarItemAttributeTitle : @"同城", kLLTabBarItemAttributeNormalImageName : @"mycity_normal", kLLTabBarItemAttributeSelectedImageName : @"mycity_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
                                @{kLLTabBarItemAttributeTitle : @"发布", kLLTabBarItemAttributeNormalImageName : @"post_normal", kLLTabBarItemAttributeSelectedImageName : @"post_normal", kLLTabBarItemAttributeType : @(LLTabBarItemRise)},
                                @{kLLTabBarItemAttributeTitle : @"消息", kLLTabBarItemAttributeNormalImageName : @"message_normal", kLLTabBarItemAttributeSelectedImageName : @"message_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
                                @{kLLTabBarItemAttributeTitle : @"我的", kLLTabBarItemAttributeNormalImageName : @"account_normal", kLLTabBarItemAttributeSelectedImageName : @"account_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)}];
tabBar.delegate = self;
[tabBarController.tabBar addSubview:tabBar];

0x04 Requirements

  • iOS 7.0+

0x05 编译测试环境

  • Xcode 7.0.1 (7A1001)
  • iPhone6 (9.0) 模拟器
  • iPhone5S (8.3) 真机

License

LLRiseTabBar-iOS is available under the MIT license. See the LICENSE file for more info.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
smartdevicelink/sdl_ios: Get your app connected to the 发布时间:2022-06-21
下一篇:
RolandasRazma/iLabyrinth: iOS game发布时间:2022-06-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap