[英]How do I remove all subviews in Rubymotion?
基本上,我有一個測驗應用程序,我添加有問題,然后切換到另一個屏幕,以顯示選擇后正確答案的擴展版本。 我嘗試過添加按鈕和標簽,但是當我這樣做時,我最終會在屏幕上顯示按鈕和標簽“重影”,之后我就不再使用了。 如何刪除所有子視圖,以便我在方法中添加的每個按鈕和標簽都會出現在新屏幕上?
class MyApplicationController < UIViewController
def loadView
self.view = UIImageView.alloc.init
end
def viewDidLoad
super
view.userInteractionEnabled=true
@question_index=0
@answerChoices = []
@questionChoices=["What is best in life?",...]
makeQuestion
end
def makeQuestion
left =20
top=100
label = UILabel.new
label.text =@questionChoices[@question_index]
label.textAlignment = UITextAlignmentCenter
label.textColor = UIColor.redColor
label.frame = [[20,20], [view.frame.size.width-40, 40]]
label.lineBreakMode = UILineBreakModeWordWrap
label.numberOfLines = 0
label.sizeToFit
view.image = UIImage.imageNamed('background.jpg')
view.addSubview(label)
4.times do |i|
@button = UIButton.buttonWithType(UIButtonTypeRoundedRect)
@button.setTitle(@answerChoices[i][@question_index], forState:UIControlStateNormal)
@button.frame = [[left, top], [view.frame.size.width - left * 2, 40]]
@button.addTarget(self, action:'actionTapped:', forControlEvents:UIControlEventTouchUpInside)
@button.tag=i
top+=45
view.addSubview(@button)
end
end
def makeAnswer
@button.removeFromSuperview
@button.removeFromSuperview
@button.removeFromSuperview
@button.removeFromSuperview
view.image = UIImage.imageNamed('back.jpg')
label = UILabel.new
label.text =@rightArray[@question_index]
label.textAlignment = UITextAlignmentCenter
label.textColor = UIColor.blackColor
label.frame = [[20,20], [view.frame.size.width-40, 40]]
label.lineBreakMode = UILineBreakModeWordWrap
label.numberOfLines = 0
label.sizeToFit
view.addSubview(label)
@button = UIButton.buttonWithType(UIButtonTypeRoundedRect)
@button.setTitle("More questions", forState:UIControlStateNormal)
@button.tag=1
@button.addTarget(self, action:'makeQuestion', forControlEvents:UIControlEventTouchUpInside)
@button.frame = [[20, 100], [view.frame.size.width - 20 * 2, 40]]
view.addSubview(@button)
end
end
你需要一系列按鈕。 在你4.times
循環,要覆蓋實例變量@button
四倍。 相反,將@button設為一個按鈕數組,並為每個索引指定一個不同的按鈕。
如果你有一個變量myView
並想要刪除它的所有子視圖,我相信這將有效:
myView.subviews.each {|sv| sv.removeFromSuperview}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.