Latest 0.0.1
License MIT
Platforms ios 7.0, requires ARC
Frameworks Foundation, UIKit

A view made up of a few views. Think of it as an ‘unscrollable’ horizontal collection view.

Screenshot 1
Screenshot 2
Screenshot 3

How to integrate it into my project?

Use cocoapods to add YZHorizontalItemsView.
If you’ve never used CocoaPods, check out their page:

# Your pod file
  pod 'YZHorizontalItemsView'

Then run this command

pod update

How do I use it?

Firstly, import the header file.

#import <YZHorizontalItemsView/YZHorizontalItemsView.h>

You can initializie a YZHorizontalItemsView in your code (with initWithFrame:), then set its "itemsArray" with an Array.

@property (nonatomic, strong) YZHorizontalItemsView *itemsViewA;

    self.itemsViewA =
    [[YZHorizontalItemsView alloc] initWithFrame:CGRectMake(20, 100, 300, 100)];

    NSMutableArray *itemsArrayA = [NSMutableArray array];

    for (NSUInteger idx = 0; idx < 6; idx++) {

        UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
        [label setText:[NSString stringWithFormat:@"%lu", (unsigned long)idx]];
        [label setTextColor:[UIColor blackColor]];
        [label setTextAlignment:NSTextAlignmentCenter];
        [label setShadowColor:[UIColor colorWithWhite:0.5 alpha:0.5]];
        [label setBackgroundColor:[UIColor colorWithHue:idx*0.1 saturation:1 brightness:1 alpha:1]];

        [itemsArrayA addObject:label];

    self.itemsViewA.itemsArray = [NSArray arrayWithArray:itemsArrayA];

    [self.view addSubview:self.itemsViewA];

You can also use YZHorizontalItemsView with storyboard. A more convenient way to set its "itemsArray" is to use an "itemAtIndex" block.

@property (weak, nonatomic) IBOutlet YZHorizontalItemsView *itemsViewInStoryboardA;

     setItemsArrayWithItemAtIndexBlock:^id(NSUInteger idx) {
         UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
         [label setText:[NSString stringWithFormat:@"%c", (char)idx + 'A']];
         [label setTextAlignment:NSTextAlignmentCenter];
         [label setBackgroundColor:[UIColor colorWithWhite:1-0.05*idx alpha:1]];
         return label;

The "itemTappedBlock" gets called when the user taps on an item.

    __weak typeof(self)weakSelf = self;
    [self.itemsViewA setItemTappedBlock:^(NSUInteger idx, id item) {
        UILabel *label = (UILabel*)item;
        [weakSelf showAlertInfoForSelectedOption:label.text];

- (void)showAlertInfoForSelectedOption:(NSString*)string{

    NSString *message = [NSString stringWithFormat:@"The option is: '%@'.", string];
    UIAlertController *alertController =
    [UIAlertController alertControllerWithTitle:@"An option is selected." message:message preferredStyle:UIAlertControllerStyleAlert];
    [alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

    [self presentViewController:alertController animated:NO completion:nil];

Latest podspec

    "name": "YZHorizontalItemsView",
    "version": "0.0.1",
    "summary": "An 'unscrollable' horizontal collection view.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Yichi Zhang": "[email protected]"
    "source": {
        "git": "",
        "tag": "0.0.1"
    "platforms": {
        "ios": "7.0"
    "requires_arc": true,
    "source_files": "Source/*.{h,m}",
    "frameworks": [

Pin It on Pinterest

Share This