这个库源自SFTagView,它试图构建一个不使用UICollectionView显示标签的视图,并支持Autolayout。
我试图使其更具Autolayout功能。在尝试了很多之后,我受到UILabel的启发。现在它就像UILabel一样工作,并支持单行和多行模式。
查看项目。它包含常规方式和在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];
}];
}
在多行模式下与UITableViewCell一起使用时,必须在调用之前设置preferredMaxLayoutWidth
。
[cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height + 1;
SKTagView受MIT许可证保护。有关更多信息,请参阅LICENSE文件。