从superview中删除UILabel

时间:2014-04-17 19:48:13

标签: ruby rubymotion

我有一个用Rubymotion编写的应用程序。我正在为视图的子视图添加标签。当我第一次调用我的方法时,我想从superView中删除任何UILabel,这样我就可以在同一个位置上写新文本。

class CalorieIntakeController < UIViewController
  @label = UILabel.new

  @label.frame = [[0,270],[self.view.frame.size.width, 50]]
  @label.text = "Text goes here"
  self.view.addSubview(@label)
end

我试图找出如何使用ruby来查找是否已存在UILabel。

2 个答案:

答案 0 :(得分:1)

如果您打算做很多事情,可能需要查看RMQ。代码会简单得多。例如:

view.parent.find(UILabel).attr(text: '') # Sets all UILabels below parent to blank

或者,如果您一直想要删除标签:

view.parent.find(UILabel).remove         # Removes all UILabels below parent

如果您真的想知道首先是否存在UILabel,请使用选择器:

view.parent.find(UILabel).length

如果没有,那么它将变为零,否则你将在父视图中有一个标签计数。

这不是您问题的准确答案,而是完成您要描述的任务的另一种方法。使用样式表,您可以从控制器代码中清除一堆设置内容并将其放入样式中。然后,您可以通过隐藏,显示,插入或删除各种UI元素来执行操作。

答案 1 :(得分:0)

我认为最好清除标签的文字,或者您可以隐藏然后使其可见,而不是添加和删除视图。