Как выполнить цикл дочерних значений?
Используйте рекурсию. Со swift я не знаком, но на Питоне сделал бы что-нибудь подобное:def remove_children_subviews(view):
    view.remove_from_superview()
    children = getattr(view, 'subviews', [])
    map(remove_children_subviews, children)
Я не вижу смысла удалять все subviews и у дочерних элементов, имхо хватит только верхнего , т.е. что-то такое 
[view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
Но если нужно уж все то как-то так. -(void) removeSubviews:(UIView*) view{
     for (UIView *child in view.subview){
           [self removeSubviews:child];
     }
     [view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
}