XWSegmentKit 0.0.2

XWSegmentKit 0.0.2

tianxueweii维护。



  • tianxueweii

XWSegmentKit

CI Status Version License Platform

简介

XWSegmentKit是一个简单易用的高级导航栏(分段控制器)组件。您可以通过使用类似于UITableView的方式来使用它,您只需要进行简单的配置即可得到您想要的效果。

本项目亮点:

  • 60fps流畅切换🚗
  • 平滑的色彩和仿射渐变💈
  • 轻量级简单易用👶
  • 自定义item指针📌
  • 丰富的可配置项🔧

演示

安装

您可以从本仓库克隆Example项目,并运行pod install下载依赖项,示例项目演示了其基本使用方法。

  1. Podfile中添加pod 'XWSegmentKit'
  2. 运行$ pod install$ pod update
  3. 导入<XWSegmentKit/XWSegmentKit.h>

使用

1、导入头文件并遵守XWSegmentBarDelegateXWSegmentBarDataSource协议

#import "XWSegmentKit.h"

@interface XWSegmentStyle1Controller ()<XWSegmentBarDelegate, XWSegmentBarDataSource>

@property (nonatomic, strong) XWSegmentBar *segmentBar;

@end

2、初始化segmentBar并加载,您可以使用Autolayout、Frame、Flexbox等多种方式布局

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.segmentBar];
    // 加载!
    [self.segmentBar xw_segment_update];
}

- (XWSegmentBar *)segmentBar {
    if (!_segmentBar) {
        _segmentBar = [[XWSegmentBar alloc] initWithFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height + 44, UIMainScreenSize.width, 44)];
        _segmentBar.delegate = self;
        _segmentBar.dataSource = self;
        _segmentBar.autoScroll = YES;
    }
    return _segmentBar;
}

3、实现XWSegmentBarDataSource代理方法,提交导航信息

- (NSInteger)xw_segment_numberOfItems {
    return self.titleArr.count;
}

- (XWSegmentContext *)xw_segment_itemContextAtIndex:(NSInteger)idx {
	
    // 设置对应idx的item上下文,item将根据该上下进行布局和加载
    XWSegmentContext *context = [[XWSegmentContext alloc] init];
   
    context.title = self.titleArr[idx];
    context.font = [UIFont systemFontOfSize:16];
    context.selectedFont = [UIFont systemFontOfSize:16];
    context.selectedColor = UIColor.redColor;
    context.color = UIColor.darkGrayColor;
   
    return context;
}

4、实现XWSegmentBarDelegate代理方法和UIScrollViewDelegate代理方法。为了达到最佳的现实效果,务必实现scrollViewDidScroll:方法进行滚动同步

#pragma mark - XWSegmentBarDelegate

- (void)xw_segment_didSelectItemAtIndex:(NSInteger)idx {
    [self.collectionView setContentOffset:CGPointMake(UIMainScreenSize.width * idx, 0) animated:YES];
}

#pragma mark - ScrollVeiw Delegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    [self.segmentBar xw_segment_associatedScrollViewDidScroll:scrollView];
}

提示:您可以通过下载Example工程查看更多用法和设置。例如,您可以用您熟悉的方式设置segmentBar的内部填充

- (UIEdgeInsets)xw_segment_padding {
    // 设置左右内边距为5
    return UIEdgeInsetsMake(0, 5, 0, 5);
}

作者

tianxueweii, [email protected]

许可证

XWSegmentKit 使用 MIT 许可证,详情见 LICENSE 文件。