Skip to content

zsk425/SKTagView

 
 

Repository files navigation

SKTagView

CI Status Version License Platform

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.

Installation with CocoaPods

platform :ios, '7.0'
pod "SKTagView"

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.

About

SKTagView is a view that supports to display tags with Autolayout.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 96.1%
  • Ruby 3.9%