【发布时间】:2016-11-28 06:32:01
【问题描述】:
我执行以下代码将 UIView 和 UIButton 作为标签添加到 UIScrollView 中。将数据附加到 UIScrollView 中一切正常。问题是如何删除 UIScrollView 中的 UIView 和 UIButton。我确实删除了,但它并没有从 UI 中消失。请帮我看看怎么办。
这里是创建 UIView & UIButton 作为标签
var xOffset: CGFloat = 0;
var i = 0;
for location in locationNameStrs {
let myString: NSString = location as NSString
let size: CGSize = myString.sizeWithAttributes([NSFontAttributeName: UIFont(name: "HelveticaNeue", size: 13)!])
outletView = UIView(frame: CGRectMake(xOffset, 10, size.width + 40, 40))
outletView.tag = i
outletStrs = UIButton(frame: CGRectMake(0, 5, outletView.frame.size.width, 25))
outletStrs.setTitle(location, forState: .Normal)
outletStrs.titleLabel?.textAlignment = NSTextAlignment.Center
outletStrs.backgroundColor = UIColor(red:0.00, green:0.45, blue:0.74, alpha:1.0)
outletStrs.layer.cornerRadius = 12.5
outletStrs.tag = i
outletStrs.addTarget(self, action: #selector(self.removeTags(_:)), forControlEvents: UIControlEvents.TouchUpInside)
outletStrs.titleLabel?.font = UIFont(name: "HelveticaNeue", size: 13)!
let closeImg = UIImageView (frame: CGRectMake(outletStrs.frame.size.width - 30, 0, 25, 25))
closeImg.image = UIImage(named: "close")
closeImg.contentMode = UIViewContentMode.Right
outletStrs.addSubview(closeImg)
outletView.addSubview(outletStrs)
tagScrollView.addSubview(outletView)
xOffset = xOffset + size.width + 50
i = i + 1
}
tagScrollView.contentSize = CGSizeMake(xOffset + 50, 50)
这里是删除,但问题是那些没有从 UI 中消失
func removeTags(sender: UIButton) {
let ok = UIAlertAction(title: "OK", style: .Default) { (action:UIAlertAction!) in
if self.locationNameStrs.contains(self.locationNameStrs[sender.tag]) {
self.locationNameStrs.removeAtIndex(sender.tag)
self.outletView.removeFromSuperview()
self.outletStrs.removeFromSuperview()
self.closeImg.removeFromSuperview()
self.addButton.removeFromSuperview()
self.displayOutletTags()
}
}
}
【问题讨论】:
-
您是否通过调试器/控制台输出验证了
if分支确实正在执行?此外,除了顶级outletView之外,删除任何内容都没有任何意义。它会带走所有的子视图。 -
此外,if 逻辑也没有意义,因为您要询问数组是否包含其自己的成员之一。唯一的选择是让
sender.tag越界,这会使您的程序崩溃。 -
@BaseZen 你能建议我怎么做吗?
-
你能把整个项目放在 GitHub 上还是按照惯例。 UI错误的问题在于问题的来源太多。然后我可以在修复它之后总结答案。
-
@BaseZen 我找到了解决方案。
标签: ios swift uiview uiscrollview uibutton