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.
platform :ios, '7.0'
pod "SKTagView"
Check out the project. It contains the usages of normal way and in UITableViewCell.
- (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];
}];
}
When uses with UITableViewCell in multi-line mode,it MUST be set preferredMaxLayoutWidth before invoking
[cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height + 1;
SKTagView is available under the MIT license. See the LICENSE file for more info.