识别点击并可以更改其文本/标签的视图的理想选择?
Posted
技术标签:
【中文标题】识别点击并可以更改其文本/标签的视图的理想选择?【英文标题】:Ideal choice for a view which recognizes taps and can change its text/label? 【发布时间】:2014-03-05 15:21:23 【问题描述】:这个问题是针对ios开发平台的。
我正在寻找带有一些文字并且可以识别水龙头的东西。一旦被点击,它会做一些事情并改变自己的文本。 (它将成为类似应用的游戏的一部分)。
起初我考虑使用带有自定义图像的 UIButton。但是在尝试更改上面的文字时,我意识到它是只读的。
然后我考虑使用 UILabel,但它不适合我的使用,因为在稍后阶段,我想让 View 具有自定义形状和轮廓。
现在,我正在考虑添加一个通用 UIView 并添加一个标签作为子视图。 (我可以给 UIView 一个自定义形状吗?)
请有人指出一个更好的解决方案,或者如果我在上面错了。
【问题讨论】:
UIButton
的标题不是只读的。您可以使用setTitle:forState:
方法。
我希望生成一些新文本,并在每次有人点击时更新按钮上的文本以恢复正常状态。可以用你建议的方法吗?
是的,您可以,这就是该方法的目的。检查本文档底部以了解可用状态。 UIControl Class Reference
谢谢!我已经阅读了该方法的描述,但不明白他们的措辞。试了一下,效果和我预期的一样。再次感谢。 :) 只是想知道如果我选择自定义并设置一个圆形图像,那么如果玩家在圆圈之外但在包含的正方形内点击会发生什么?
如果您找到了这个问题的答案,请将其添加为这个问题的答案(并且只是一个答案)。无需编辑您的问题以包含答案。
【参考方案1】:
要创建自定义形状的对象,请使用 UIbezierPath。通过 UIbezierPath 我们可以创建自定义形状的 UIViews。在这些视图中触摸可以处理向该视图添加手势。
示例:-
UIBezierPath* path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(0, 0)];
[path addLineToPoint:CGPointMake(view.frame.size.width, 0)];
[path addLineToPoint:CGPointMake(view.frame.size.width, [self headerBackGroundView].frame.size.height)];
[path addLineToPoint:CGPointMake(self.frame.size.width, self.frame.size.height)];
[path setLineWidth:1.0];
[[UIColor lightGrayColor] setStroke];
[path stroke];
【讨论】:
【参考方案2】:正如 Desdenova 所说,他的解决方案对我有用。
UIButton 的标题不是只读的。您可以使用 setTitle:forState: 方法。
【讨论】:
以上是关于识别点击并可以更改其文本/标签的视图的理想选择?的主要内容,如果未能解决你的问题,请参考以下文章