iOS 简单标签选择,tagView

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 简单标签选择,tagView相关的知识,希望对你有一定的参考价值。

参考技术A 简单的标签页面,提供选中和取消选中。可实现多行,一行多少个都可自定义。已暴露出以下属性可供自定义,。 demo地址

简单的实现方法:

mSelectedArr = [NSMutableArray array];

    mDataSource = [NSMutableArray arrayWithObjects:@"社科",@"认知智慧节目",@"文学",@"文化艺术",@"科技",@"科学",@"两性",@"家庭",@"亲子",@"健康",@"生活方式",@"沟通",@"创业",@"互联网",@"金融",@"财富",@"职场",@"管理",@"商业",@"经济学",@"思维",@"心理学",@"历史",@"趋势",@"自我管理",@"方法技能",@"学科通识", nil];

    mTagView = [[ScrollTagView alloc]initWithFrame:CGRectMake(0, 64, SCREENWIDTH, SCREENHEIGHT)];

    mTagView.showWidht = SCREENWIDTH;

    mTagView.totalCols = 4;

    mTagView.labTextFont = 12;

    mTagView.spaceLeft = 10;

    mTagView.spaceRight = 10;

    mTagView.cornerValue = 5;

    mTagView.labWidht = (SCREENWIDTH-50)/4;

    mTagView.textColor = [UIColor grayColor];

    mTagView.labHeight = 30;

    mTagView.spaceTBMargin = 20;

    mTagView.isShowSelectedBg = YES;

    mTagView.scrollTagViewDelegate = self;

    [mTagView setTagArray:mDataSource];

    [self.view addSubview:mTagView];

//此代理可知选中后又取消的标签

- (void)scrollTagView:(ScrollTagView *)tagView didSelectTagAtIndex:(NSInteger)index





//选中的标签

- (void)scrollTagView:(ScrollTagView *)tagView cancelSelectTagAtIndex:(NSInteger)index



无法在swift中创建TAGVIEW?

我有一个集合视图。我想创建集合视图的单元格作为标签。我已经写过,但它没有计算宽度,也没有计算出细胞之间的宽度。请告诉我如何改进它?

extension StoreItemCell:UICollectionViewDelegate {
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

        let width = CGSize(
        return self.sizingCell!.systemLayoutSizeFitting(UILayoutFittingCompressedSize)
    }        
}



 override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
        self.tagsCollectionView.delegate = self
        self.tagsCollectionView.dataSource = self
        let cellNib = UINib(nibName: Titles.CellIdentifier.TagCell, bundle: nil)
        self.tagsCollectionView.register(cellNib, forCellWithReuseIdentifier: Titles.CellIdentifier.TagCell)
        self.tagsCollectionView.backgroundColor = UIColor.clear
        self.sizingCell = (cellNib.instantiate(withOwner: nil, options: nil) as NSArray).firstObject as! TagCell?
        self.flowLayout.sectionInset = UIEdgeInsetsMake(8, 8, 8, 8)
        self.flowLayout.minimumInteritemSpacing = 15
    }

请告诉我如何改进它。我附上了我的设计截图。

enter image description here

答案

添加这个

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        let Labell : UILabel = UILabel()

        Labell.text =   self.TagsArray[indexPath.item] as? String
        let labelTextWidth =   Labell.intrinsicContentSize.width
        return CGSize(width: labelTextWidth + 10, height: 30)


    }

创建UILabel

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
}
另一答案

您的代码应该在您的父类中,而不是在单元类中,

extension YourViewController:UICollectionViewDelegate { 
    func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

            return //YourCellSize here
    }
  }

您必须在父类中使用该委托方法。不在细胞类中。

以上是关于iOS 简单标签选择,tagView的主要内容,如果未能解决你的问题,请参考以下文章

无法在swift中创建TAGVIEW?

BUG - IOS 中选择标签没有完成按钮

iOS 14 菜单选择器样式的标签在更改时有时会变暗

iOS简单易用的标签列表界面

iOS:带有 1 个标签和 3 个按钮的简单自动布局

iOS个人中心渐变动画微信对话框标签选择器自定义导航栏短信验证输入框等源码