在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:Yalantis/FoldingTabBar.iOS开源软件地址:https://github.com/Yalantis/FoldingTabBar.iOS开源编程语言:Objective-C 90.7%开源软件介绍:FoldingTabBar.iOSFolding Tab Bar and Tab Bar Controller Inspired by this project on Dribbble Also, read how it was done in our blog RequirementsiOS 7.0 InstallationCocoaPodspod 'FoldingTabBar', '~> 1.2.1' Carthage
Manual InstallationAlternatively you can directly add all the source files from FoldingTabBar folder to your project.
IntroductionYALFoldingTabBarController
YALFoldingTabBarYALFoldingTabBar is a subclass of a standard UIView. We wanted to make this component expand and contract in response to a user tapping. When the component is closed you can only see a central button (“+”). When tapping on it, our custom Tab Bar expands letting other tabBarItems appear, so that the user can switch the controllers. Each separate tabBarItem can have two additional buttons on the left and right. These buttons can be used to let a user interact with a selected screen on the YALFoldingTabBarController without even having to leave it. YALTabBarItem
UsageOption 1: The simplest way is to use Option 2: You can write your own implementation of Here is an instruction of how to use
Objective-C YALFoldingTabBarController *tabBarController = (YALFoldingTabBarController *) self.window.rootViewController;
//prepare leftBarItems
YALTabBarItem *item1 = [[YALTabBarItem alloc] initWithItemImage:[UIImage imageNamed:@"nearby_icon"]
leftItemImage:nil
rightItemImage:nil];
YALTabBarItem *item2 = [[YALTabBarItem alloc] initWithItemImage:[UIImage imageNamed:@"profile_icon"]
leftItemImage:[UIImage imageNamed:@"edit_icon"]
rightItemImage:nil];
tabBarController.leftBarItems = @[item1, item2];
//prepare rightBarItems
YALTabBarItem *item3 = [[YALTabBarItem alloc] initWithItemImage:[UIImage imageNamed:@"chats_icon"]
leftItemImage:[UIImage imageNamed:@"search_icon"]
rightItemImage:[UIImage imageNamed:@"new_chat_icon"]];
YALTabBarItem *item4 = [[YALTabBarItem alloc] initWithItemImage:[UIImage imageNamed:@"settings_icon"]
leftItemImage:nil
rightItemImage:nil];
tabBarController.rightBarItems = @[item3, item4];
Swift if let tabBarController = window?.rootViewController as? YALFoldingTabBarController {
//leftBarItems
let firstItem = YALTabBarItem(
itemImage: UIImage(named: "nearby_icon")!,
leftItemImage: nil,
rightItemImage: nil
)
let secondItem = YALTabBarItem(
itemImage: UIImage(named: "profile_icon")!,
leftItemImage: UIImage(named: "edit_icon")!,
rightItemImage: nil
)
tabBarController.leftBarItems = [firstItem, secondItem]
//rightBarItems
let thirdItem = YALTabBarItem(
itemImage: UIImage(named: "chats_icon")!,
leftItemImage: UIImage(named: "search_icon")!,
rightItemImage: UIImage(named: "new_chat_icon")!
)
let forthItem = YALTabBarItem(
itemImage: UIImage(named: "settings_icon")!,
leftItemImage: nil,
rightItemImage: nil
)
tabBarController.rightBarItems = [thirdItem, forthItem]
} If you want to handle touches on extra tabBarItems import - (void)tabBarDidSelectExtraLeftItem:(YALFoldingTabBar *)tabBar;
- (void)tabBarDidSelectExtraRightItem:(YALFoldingTabBar *)tabBar; Swiftfunc tabBarDidSelectExtraLeftItem(tabBar: YALFoldingTabBar!)
func tabBarDidSelectExtraRightItem(tabBar: YALFoldingTabBar!) If you want to handle touches on tabBarItems by indexes import Objective-C- (void)tabBar:(YALFoldingTabBar *)tabBar didSelectItemAtIndex:(NSUInteger)index;
- (BOOL)tabBar:(YALFoldingTabBar *)tabBar shouldSelectItemAtIndex:(NSUInteger)index; Swiftfunc tabBar(tabBar: YALFoldingTabBar!, didSelectItemAtIndex index: UInt)
func tabBar(tabBar: YALFoldingTabBar!, shouldSelectItemAtIndex index: UInt) -> Bool If you want to observe contracting and expanding animation states in Objective-C- (void)tabBarWillCollapse:(YALFoldingTabBar *)tabBar;
- (void)tabBarWillExpand:(YALFoldingTabBar *)tabBar;
- (void)tabBarDidCollapse:(YALFoldingTabBar *)tabBar;
- (void)tabBarDidExpand:(YALFoldingTabBar *)tabBar; Swiftfunc tabBarWillCollapse(tabBar: YALFoldingTabBar!)
func tabBarWillExpand(tabBar: YALFoldingTabBar!)
func tabBarDidCollapse(tabBar: YALFoldingTabBar!)
func tabBarDidExpand(tabBar: YALFoldingTabBar!) Important notesBecause we changed the height of the default You can see how we did it on the example project. Tips for customizationYou can make the following configurations for custom tabBar:
Objective-CtabBarController.tabBarViewHeight = YALTabBarViewDefaultHeight; SwifttabBarController.tabBarViewHeight = YALTabBarViewDefaultHeight
Objective-C tabBarController.tabBarView.tabBarViewEdgeInsets = YALTabBarViewHDefaultEdgeInsets;
tabBarController.tabBarView.tabBarItemsEdgeInsets = YALTabBarViewItemsDefaultEdgeInsets;
tabBarController.tabBarView.offsetForExtraTabBarItems = YALForExtraTabBarItemsDefaultOffset; SwifttabBarController.tabBarView.tabBarViewEdgeInsets = YALTabBarViewHDefaultEdgeInsets
tabBarController.tabBarView.tabBarItemsEdgeInsets = YALTabBarViewItemsDefaultEdgeInsets
tabBarController.tabBarView.offsetForExtraTabBarItems = YALForExtraTabBarItemsDefaultOffset
Objective-C tabBarController.tabBarView.backgroundColor = [UIColor colorWithRed:94.0/255.0 green:91.0/255.0 blue:149.0/255.0 alpha:1];
tabBarController.tabBarView.tabBarColor = [UIColor colorWithRed:72.0/255.0 green:211.0/255.0 blue:178.0/255.0 alpha:1];
tabBarController.tabBarView.dotColor = [UIColor colorWithRed:94.0/255.0 green:91.0/255.0 blue:149.0/255.0 alpha:1]; SwifttabBarController.tabBarView.backgroundColor = UIColor(
red: 94.0/255.0,
green: 91.0/255.0,
blue: 149.0/255.0,
alpha: 1
)
tabBarController.tabBarView.tabBarColor = UIColor(
red: 72.0/255.0,
green: 211.0/255.0,
blue: 178.0/255.0,
alpha: 1
)
tabBarController.tabBarView.dotColor = UIColor(
red: 94.0/255.0,
green: 91.0/255.0,
blue: 149.0/255.0,
alpha: 1
)
Objective-C tabBarController.tabBarView.extraTabBarItemHeight = YALExtraTabBarItemsDefaultHeight; SwifttabBarController.tabBarView.extraTabBarItemHeight = YALExtraTabBarItemsDefaultHeight Let us know!We’d be really happy if you sent us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestion regarding the animation. P.S. We’re going to publish more awesomeness wrapped in code and a tutorial on how to make UI for iOS (Android) better than better. Stay tuned! License
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论