相关疑难解决方法(0)

如何在Swift中删除视图的所有子视图?

我正在寻找一种简单的方法来立即从超视图中删除所有子视图,而不是逐个删除它们.

//I'm trying something like this, but is not working
let theSubviews : Array = container_view.subviews
for (view : NSView) in theSubviews {
    view.removeFromSuperview(container_view)
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

UPDATE

我的应用有一个主要的container_view.我必须添加不同的其他视图作为子视图,container_view以提供一种导航.

因此,当单击按钮以"打开"特定页面时,我需要删除所有子视图并添加新视图.

更新2 - 工作解决方案(OS X)

我猜Apple修了它.

现在比以往任何时候都更容易,只需致电:

for view in containerView.subviews{
    view.removeFromSuperview()
}
Run Code Online (Sandbox Code Playgroud)

macos view swift

159
推荐指数
11
解决办法
13万
查看次数

Swift从superview中删除子视图

我有一个scrollView,我添加了一个refreshcontroll.

self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Frissítéshez húzzad! :)")
self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
self.scrollView.addSubview(refreshControl)
Run Code Online (Sandbox Code Playgroud)

在刷新方法中,我必须从scrollview中删除所有子视图,然后重新填充scrollview ..

self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Frissítéshez húzzad! :)")
self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
self.scrollView.addSubview(refreshControl)
Run Code Online (Sandbox Code Playgroud)

在我尝试拉动之后,我的滚动视图获得了新数据,但它不再具有refreshcontroll.我认为这是因为当我从我的scrollview中删除子视图时,我也从中删除了refreshcontroll.(如果我在刷新方法中再次添加refreshcontroll,我的scrollview将再次刷新控件)但是还有另一个问题.刷新后我的滚动视图向下移动..我附在图片上:

这就是我删除子视图的方法:

func refresh(sender:AnyObject)
{
    //remove all subviews from scrollview..
    let subViews = self.scrollView.subviews
    for subview in subViews{
        println("for removing...")
        subview.removeFromSuperview()
    }

    println("refresh called..")
    UIApplication.sharedApplication().applicationIconBadgeNumber = 0
    //remove all elements from the array
    tstFrames.removeAll(keepCapacity: false)
    //refresh data from webservice and adding it to tstFrames Array
    wsServiceFeedTst()
    //adding …
Run Code Online (Sandbox Code Playgroud)

uiscrollview ios uirefreshcontrol swift

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

swift ×2

ios ×1

macos ×1

uirefreshcontrol ×1

uiscrollview ×1

view ×1