// // YPTabBar.h // YPTabBarController // // Created by 喻平 on 15/8/11. // Copyright (c) 2015年 YPTabBarController. All rights reserved. // #import #import "YPTabItem.h" @class YPTabBar; @protocol YPTabBarDelegate @optional - (BOOL)yp_tabBar:(YPTabBar *)tabBar willSelectItemAtIndex:(NSInteger)index; - (void)yp_tabBar:(YPTabBar *)tabBar didSelectedItemAtIndex:(NSInteger)index; @end @interface YPTabBar : UIView @property (nonatomic, copy) NSArray *items; // TabItems // 设置item选中背景 @property (nonatomic, strong) UIColor *itemSelectedBgColor; @property (nonatomic, strong) UIImage *itemSelectedBgImage; @property (nonatomic, assign) CGFloat itemSelectedBgCornerRadius; @property (nonatomic, assign) CGFloat leftAndRightSpacing; // TabBar边缘与第一个和最后一个item的距离 @property (nonatomic, strong) UIColor *itemTitleColor; // 标题颜色 @property (nonatomic, strong) UIColor *itemTitleSelectedColor; // 选中时标题的颜色 @property (nonatomic, strong) UIFont *itemTitleFont; // 标题字体 @property (nonatomic, strong) UIFont *itemTitleSelectedFont; // 选中时标题的字体 @property (nonatomic, strong) UIColor *badgeBackgroundColor; // Badge背景颜色 @property (nonatomic, strong) UIImage *badgeBackgroundImage; // Badge背景图像 @property (nonatomic, strong) UIColor *badgeTitleColor; // Badge标题颜色 @property (nonatomic, strong) UIFont *badgeTitleFont; // Badge标题字体 @property (nonatomic, assign) NSInteger selectedItemIndex; // 选中某一个item /** * 拖动内容视图时,item的颜色是否根据拖动位置显示渐变效果,默认为YES */ @property (nonatomic, assign, getter = isItemColorChangeFollowContentScroll) BOOL itemColorChangeFollowContentScroll; /** * 拖动内容视图时,item的字体是否根据拖动位置显示渐变效果,默认为NO */ @property (nonatomic, assign, getter = isItemFontChangeFollowContentScroll) BOOL itemFontChangeFollowContentScroll; /** * TabItem的选中背景是否随contentView滑动而移动 */ @property (nonatomic, assign, getter = isItemSelectedBgScrollFollowContent) BOOL itemSelectedBgScrollFollowContent; /** * 将Image和Title设置为水平居中,默认为YES */ @property (nonatomic, assign, getter = isItemContentHorizontalCenter) BOOL itemContentHorizontalCenter; @property (nonatomic, weak) id delegate; /** * 返回已选中的item */ - (YPTabItem *)selectedItem; /** * 根据titles创建item */ - (void)setTitles:(NSArray *)titles; /** * 设置tabItem的选中背景,这个背景可以是一个横条 * * @param insets 选中背景的insets * @param animated 点击item进行背景切换的时候,是否支持动画 */ - (void)setItemSelectedBgInsets:(UIEdgeInsets)insets tapSwitchAnimated:(BOOL)animated; /** * 设置tabBar可以左右滑动 * 此方法与setScrollEnabledAndItemFitTextWidthWithSpacing这个方法是两种模式,哪个后调用哪个生效 * * @param width 每个tabItem的宽度 */ - (void)setScrollEnabledAndItemWidth:(CGFloat)width; /** * 设置tabBar可以左右滑动,并且item的宽度根据标题的宽度来匹配 * 此方法与setScrollEnabledAndItemWidth这个方法是两种模式,哪个后调用哪个生效 * * @param spacing item的宽度 = 文字宽度 + spacing */ - (void)setScrollEnabledAndItemFitTextWidthWithSpacing:(CGFloat)spacing; /** * 将tabItem的image和title设置为居中,并且调整其在竖直方向的位置 * * @param verticalOffset 竖直方向的偏移量 * @param spacing image和title的距离 */ - (void)setItemContentHorizontalCenterWithVerticalOffset:(CGFloat)verticalOffset spacing:(CGFloat)spacing; /** * 设置数字Badge的位置与大小 * * @param marginTop 与TabItem顶部的距离 * @param centerMarginRight badge的中心与TabItem右侧的距离 * @param titleHorizonalSpace Badge的标题水平方向的空间 * @param titleVerticalSpace Badge的标题竖直方向的空间 */ - (void)setNumberBadgeMarginTop:(CGFloat)marginTop centerMarginRight:(CGFloat)centerMarginRight titleHorizonalSpace:(CGFloat)titleHorizonalSpace titleVerticalSpace:(CGFloat)titleVerticalSpace; /** * 设置小圆点Badge的位置与大小 * * @param marginTop 与TabItem顶部的距离 * @param centerMarginRight badge的中心与TabItem右侧的距离 * @param sideLength 小圆点的边长 */ - (void)setDotBadgeMarginTop:(CGFloat)marginTop centerMarginRight:(CGFloat)centerMarginRight sideLength:(CGFloat)sideLength; /** * 设置分割线 * * @param itemSeparatorColor 分割线颜色 * @param width 宽度 * @param marginTop 与tabbar顶部距离 * @param marginBottom 与tabbar底部距离 */ - (void)setItemSeparatorColor:(UIColor *)itemSeparatorColor width:(CGFloat)width marginTop:(CGFloat)marginTop marginBottom:(CGFloat)marginBottom; - (void)setItemSeparatorColor:(UIColor *)itemSeparatorColor marginTop:(CGFloat)marginTop marginBottom:(CGFloat)marginBottom; @end