HTHorizontalSelectionList 0.7.4

HTHorizontalSelectionList 0.7.4

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年11月

Erik AckermannDustin Burge 维护。



一个简单的水平滚动项目列表,可以用作更灵活的 UISegmentedControl 替代。

示例

一个简单的侧边滚动项目列表(可能是UITableView下面的过滤器)。 alt tag

用法

设置和初始化

要开始使用 HTHorizontalSelectionList,请导入主头文件

#import <HTHorizontalSelectionList/HTHorizontalSelectionList.h>

水平的选项列表使用数据源/代理模型(类似于 UITableView 或 UIPickerView)。要设置一个简单的水平选项列表,初始化视图并设置其代理和数据源

@interface CarListViewController () <HTHorizontalSelectionListDataSource, HTHorizontalSelectionListDelegate>

@property (nonatomic, strong) HTHorizontalSelectionList *selectionList;
@property (nonatomic, strong) NSArray *carMakes;

@end

@implementation CarListViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.selectionList = [[HTHorizontalSelectionList alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30)];
    selectionList.delegate = self;
    selectionList.dataSource = self;

    self.carMakes = @[@"ALL CARS",
                      @"AUDI",
                      @"BITTER",
                      @"BMW",
                      @"BÜSSING",
                      @"GUMPERT",
                      @"MAN"];
}

#pragma mark - HTHorizontalSelectionListDataSource Protocol Methods

- (NSInteger)numberOfItemsInSelectionList:(HTHorizontalSelectionList *)selectionList {
    return self.carMakes.count;
}

- (NSString *)selectionList:(HTHorizontalSelectionList *)selectionList titleForItemWithIndex:(NSInteger)index {
    return self.carMakes[index];
}

#pragma mark - HTHorizontalSelectionListDelegate Protocol Methods

- (void)selectionList:(HTHorizontalSelectionList *)selectionList didSelectButtonWithIndex:(NSInteger)index {
    // update the view for the corresponding index
}

定制外观

HTHorizontalSelectionList 有许多可配置的属性。

要根据以下方法调整按钮的字体和颜色:

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
- (void)setTitleFont:(UIFont *)font forState:(UIControlState)state;

默认(未选择)状态由 UIControlStateNormal 配置。选项列表可以配置为三种状态:UIControlStateNormal、UIControlStateHightlighted 和 UIControlStateSelected。如果没有为选中或高亮状态指定显式颜色或字体,控件将回退到正常样式。

可以使用以下属性配置选择指示符的外观

@property (nonatomic, strong) UIColor *selectionIndicatorColor;

@property (nonatomic) HTHorizontalSelectionIndicatorStyle selectionIndicatorStyle;

有三个选择样式

typedef NS_ENUM(NSInteger, HTHorizontalSelectionIndicatorStyle) {
    HTHorizontalSelectionIndicatorStyleBottomBar,           // Default
    HTHorizontalSelectionIndicatorStyleButtonBorder,
    HTHorizontalSelectionIndicatorStyleNone
};

要配置底部的栏高,请使用

@property (nonatomic) CGFloat selectionIndicatorHeight;

默认高度为 3 点。要调整此底部栏在标签之外的扩展宽度,请使用

@property (nonatomic) CGFloat selectionIndicatorHorizontalPadding;

默认水平内边距为 7.5 点。这些属性只在选择样式为 HTHorizontalSelectionIndicatorStyleBottomBar 时生效。

可以使用此属性调整选择指示器的回弹效果

@property (nonatomic) HTHorizontalSelectionIndicatorAnimationMode selectionIdicatorAnimationMode;

您可以调整每个按钮的内容内边距:

@property (nonatomic) UIEdgeInsets buttonInsets;

设置 bottomTrimColor 改变细底部边框的外观

@property (nonatomic, strong) UIColor *bottomTrimColor;
@property (nonatomic) BOOL bottomTrimHidden;