SKTagView 0.9.2

SKTagView 0.9.2

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Jul 2016

Maintained by Shaokang Zhao.



SKTagView 0.9.2

  • By
  • Shaokang Zhao

This library is derived from SFTagView, which tries to build a view displaying tags without using UICollectionView and supports Autolayout.

I tried to make it more Autolayout. After having tried a lot, I inspired by UILabel. Now it just works like UILabel and supports single line and multi-line mode.

Usage

Example

Check out the project. It contains the usages of normal way and in UITableViewCell.

Code

- (void)setupTagView
{
  self.tagView = ({
    SKTagView *view = [SKTagView new];
    view.backgroundColor = [UIColor cyanColor];
    view.padding = UIEdgeInsetsMake(10, 25, 10, 25);
    view.interitemSpacing = 8;
    view.lineSpacing = 10;
    //Handle tag's tap event
    view.didTapTagAtIndex = ^(NSUInteger index){
        NSLog(@"Tap");
    };
    view;
  });
  [self.view addSubview:self.tagView];
  [self.tagView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.center.equalTo(superView);
    make.leading.equalTo(superView);
    make.trailing.equalTo(superView);
  }];

  //Add Tags
  [@[@"Python", @"Javascript", @"HTML", @"Go", @"Objective-C", @"C", @"PHP"] enumerateObjectsUsingBlock:^(NSString *text, NSUInteger idx, BOOL *stop) {
    SKTag *tag = [SKTag tagWithText:text];
    tag.textColor = UIColor.whiteColor;
    tag.bgColor = UIColor.orangeColor;
    tag.cornerRadius = 3;
    tag.fontSize = 15;
    tag.padding = UIEdgeInsetsMake(13.5, 12.5, 13.5, 12.5);

    [self.tagView addTag:tag];
  }];
}

Tips

When uses with UITableViewCell in multi-line mode,it MUST be set preferredMaxLayoutWidth before invoking

[cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height + 1;

Screenshots

Normal

With UITableViewCell

License

SKTagView is available under the MIT license. See the LICENSE file for more info.