小编mrt*_*tom的帖子

在UITextView中选择一个单词

编辑:我想我应该使用UILabel而不是UITextView,因为我不希望突出显示使用系统范围的蓝色和'copy/select all/define'popover.

我正在尝试构建自定义文本视图,我正在寻找正确方法的一些帮助.我是一个iOS n00b,所以主要是寻找有关如何最好地解决问题的想法.

我想构建一个自定义文本视图,具有以下行为:

  1. 视图从小开始.如果它收到一个点击它会增长(动画)为父视图的大小作为模态窗口(左上图,然后右上图)
  2. 在这个大状态中,如果单击一个单词,则单词以某种方式突出显示,并且委托方法被称为传递包含被轻敲的字符串(左下图)

新文本视图http://telliott.net/static/NewTextView.png

我怀疑复杂性将在于识别被点击的单词,所以让我们从那里开始.我可以想到几种尝试这种方法:

  1. 子类UILabel.添加触摸手势识别器.识别触摸时,以某种方式获取触摸点的(xy)坐标,查看视图显示的字符串,并根据位置确定必须按下哪个字.然而,我可以通过自动换行很快看到这变得非常复杂.我不确定如何获得触摸的(x,y)坐标(虽然我认为这很简单),或者如何获得每个角色等设备相关的文本宽度.我宁愿不去这条路线,除非有人可以说服我这不会太可怕!
  2. 子类UIView,并通过为每个单词添加UILabel伪造句子.测量每个UILabel的宽度并自己铺设.这似乎是一种更明智的方法,虽然我担心以这种方式布置文本也比我开始尝试时的想法更难.

有更明智的方法吗?你可以用其他方式检索UILabel中触及的单词吗?

如果我选择选项2,那么我认为小 - >大文本的动画可能会很复杂,因为单词会以有趣的方式包装.所以我想要另一个子视图 - 这次是UITextView - 将句子保持在小状态.将此动画设置为大,然后将其隐藏,同时以每个单词的一个视图显示我的UIView.

任何想法都赞赏.提前致谢 :)

uitextview uilabel ios

6
推荐指数
1
解决办法
6260
查看次数

标签 统计

ios ×1

uilabel ×1

uitextview ×1