Open ChenYilong opened 4 years ago
UITabBarAppearance *standardAppearance = [[UITabBarAppearance alloc] init];
//shadowColor和shadowImage均可以自定义颜色, shadowColor默认高度为1, shadowImage可以自定义高度.
standardAppearance.shadowColor = [UIColor cyl_systemGreenColor];
// standardAppearance.shadowImage = [[self class] imageWithColor:[UIColor cyl_systemGreenColor] size:CGSizeMake([UIScreen mainScreen].bounds.size.width, 1)];
你好,我这么设置了确实达到了设置分割线的效果,但是 CYLTabBarItemTitlePositionAdjustment设置的偏移量就失效了,是时机问题不对吗?请问下作者,这个问题修复了吗?
@Lee0820 偏移量相关的代码我没动,是不是不设置分割线就生效了?
对的,用UITabBarAppearance 设置 ShadowImage,后 CYLTabBarItemTitlePositionAdjustment设置的偏移量就失效了,我在微信也请教过这个问题,不知道是不是系统的bug,13.4.1,我用老api设置分割线也是有效的 [[UITabBar appearance] setShadowImage:,13.3上不行~
@Lee0820 Lee 在这里回复你了 https://github.com/ChenYilong/CYLTabBarController/issues/456
iOS 13.2.3 顶部横线无法显示,图层也看不到shadowImage.
- (void)customizeTabBarAppearance {
[self rootWindow].backgroundColor = [UIColor cyl_systemBackgroundColor];
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSForegroundColorAttributeName] = [UIColor cyl_systemGrayColor];
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor cyl_labelColor];
if (@available(iOS 13.0, *)) {
UITabBarItemAppearance *inlineLayoutAppearance = [[UITabBarItemAppearance alloc] init];
[inlineLayoutAppearance.normal setTitleTextAttributes:normalAttrs];
[inlineLayoutAppearance.selected setTitleTextAttributes:selectedAttrs];
UITabBarAppearance *standardAppearance = [[UITabBarAppearance alloc] init];
standardAppearance.stackedLayoutAppearance = inlineLayoutAppearance;
standardAppearance.backgroundColor = [UIColor cyl_systemBackgroundColor];
standardAppearance.shadowImage = [[self class] imageWithColor:[UIColor cyl_systemGreenColor] size:CGSizeMake([UIScreen mainScreen].bounds.size.width, 1)];
self.tabBar.standardAppearance = standardAppearance;
} else {
UITabBarItem *tabBar = [UITabBarItem appearance];
[tabBar setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
[tabBar setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];
[[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]];
[[UITabBar appearance] setShadowImage:[[self class] imageWithColor:[UIColor cyl_systemGreenColor] size:CGSizeMake([UIScreen mainScreen].bounds.size.width, 1)]];
}
}
![Uploading 191603897759_.pic.jpg…]()
今天把 CYLTabBarController 更新到1.29.0, 修了几个issue, 主要是顶部导航栏, 主要修复的功能:
隐藏 TabBar 分割线的方法
将更新的代码贴一下:
TabBar 自定义分割线
可以使用:
v1.29.0 更新了内部实现, 兼容了 iOS13+ ,和 iOS13- 版本.
其中重要的部分在于找到分割线对应的 View, 实现方法如下:
隐藏 TabBar 分割线的方法
Lottie 动画在某些场景不播放的问题
详情参见 #423 issue.
fix issues:
431
436
492
423
项目地址: https://github.com/ChenYilong/CYLTabBarController