Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS中创建标记文件_Ios_Tags - Fatal编程技术网

如何在iOS中创建标记文件

如何在iOS中创建标记文件,ios,tags,Ios,Tags,如何在iOS中创建标签字段,如下面附加的屏幕截图 标签文本应从用户输入中提取。您可以使用用户输入使用更多设计,并使用集合的视图的单元格索引来处理标签,更多设计请点击以下链接- Swift 3 Xcode 8.3.2 这很容易。无需为此使用任何框架,您可以创建自己的视图 假设您有一个ViewController,您想在其上为特定用户添加技能。因此,在该视图中,您将有一个文本字段来接受技能名称,还有一个collectionView来显示用户输入的所有技能。查看图像以获得更清晰的视图 创建需要传递

如何在iOS中创建标签字段,如下面附加的屏幕截图


标签文本应从用户输入中提取。

您可以使用用户输入使用更多设计,并使用
集合的
视图
单元格
索引
来处理
标签
,更多设计请点击以下链接-


Swift 3 Xcode 8.3.2

这很容易。无需为此使用任何框架,您可以创建自己的视图

假设您有一个ViewController,您想在其上为特定用户添加技能。因此,在该视图中,您将有一个文本字段来接受技能名称,还有一个collectionView来显示用户输入的所有技能。查看图像以获得更清晰的视图

创建需要传递给collectionView委托方法的技能数组

var skillArray = [String]()
现在,每当您在文本字段中添加任何内容,并按下键盘上的返回按钮时,您需要将该技能名称添加到技能数组中并重新加载collectionView

skillArray.append(textField.text)

collectionView.reloadData()
下一步添加collectionview方法:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return self.skillArray.count
}

// make a cell for each cell index path
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let skillCell = collectionView.dequeueReusableCell(withReuseIdentifier: "collectionViewCell", for: indexPath as IndexPath) as! SkillCollectionViewCell
    skillCell.skillLabel.text = skillArray[indexPath.row]
    skillCell.deleteAction = {
        self.skillArray.remove(at: indexPath.row)
        self.collectionView.reloadData()
    }
    return skillCell
}
最后一步是添加collectionViewFlowLayout方法

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
                // handle tap events
                print("You selected cell #\(indexPath.item)!")

            }

func collectionView(_ collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize{
                let widthText = self.skillArray[indexPath.item]

                let font = UIFont(name: "Helvetica", size:18)
                let fontAttributes = [NSFontAttributeName: font] // it says name, but a UIFont works
                let myText = widthText
                let size = (myText as NSString).size(attributes: fontAttributes)

                return CGSize(width: size.width+28, height:30)
            }

我建议UICollectionView实现标记。它的代码更少,开销更少,易于实现

请按此链接获取指导:

这就是它的样子。请注意它也是灵活的


希望这能帮助你

当字符串变长时,这个链接虽然是善意的,但根本不起作用。我在尝试你的方法。但我的标签不是从左边开始的,标签之间的间隔是随机的。如果我理解你的意思,你是说你的标签视图已经准备好了,只是它不是从集合视图的最左边开始的。在这种情况下,请确保将每个单元格的左间距设置为0。您可以从情节提要或使用collectionview的flowlayout委托以编程方式执行此操作。