基本上我试图为下面描述的自定义视图找到一个iOS库(首选Obj-C)。我无法找到类似的东西,但看起来这是非常常见的观点,所以也许社区中的任何人都可以把我指向正确的地方。
所以我试图在iOS中实现一个视图来复制图像中的行为:
基本上它是一个水平容器视图,它根据宽度堆叠其他视图(基本上是UILabels),并在需要时动态添加更多行。
因此,我目前的高级别方法是按以下方式实施:
虽然这个过程相当简单,但我仍在努力寻找简化开发的可行方法,并在此功能上节省客户的预算。
那么也许有人可以指出更好的方法?看起来像UICollectionView可能是一个很好的选择,但仍然可能有任何类似于我上面描述的类似的库?
无法在github上找到任何内容,但可能只是因为我搜索错误。
答案 0 :(得分:1)
代码工作
- (IBAction)actionTagCancel:(UIButton *)sender {
[arrTagList removeObjectAtIndex:sender.tag];
[self.collecTagCategory reloadData];
}
#pragma mark- collection data source
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return arrTagList.count;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGSize tagLabelSize = [arrTagList[indexPath.row] boundingRectWithSize: CGSizeMake(self.view.frame.size.width-75, 120)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica Neue" size:14.0 ]}
context:nil].size;
return CGSizeMake (tagLabelSize.width + 45, 30);
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
TagViewListCell *tagCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"tagCell" forIndexPath:indexPath];
tagCell.viewTag.layer.cornerRadius = 4;
tagCell.btnTagCancel.tag = indexPath.row;
tagCell.lblTagName.text = arrTagList[indexPath.row];
_constTagViewHeight.constant = _collecTagCategory.contentSize.height;
return tagCell;
}
<强>输出强>
删除标记后自动管理
修改