다음과 같은 것이 효과가있을 것이라고 생각했습니다.
for (UIView* b in self.view.subviews)
{
[b removeFromSuperview];
}
모든 종류의 하위보기를 제거하고 싶습니다. UIImages, Buttons, Textfields 등
다음과 같은 것이 효과가있을 것이라고 생각했습니다.
for (UIView* b in self.view.subviews)
{
[b removeFromSuperview];
}
모든 종류의 하위보기를 제거하고 싶습니다. UIImages, Buttons, Textfields 등
b
에서 즉시 제거 subviews
되어 금지 된 빠른 열거 루프 내에서 돌연변이를 일으킬 것이라고 생각했습니다 .
copy
이 복사본을 만드는 지정 수단 설정할 때 ; 얻는 것에 대해 지정된 것이 없습니다. 복사본이 반환 될 가능성이 높지만 속성 정의의 일부는 아닙니다.
답변:
[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];
변형과 동일하지만 약간 더 짧습니다.
이렇게 사용할 수 있습니다
//adding an object to the view
view.addSubView(UIButton())
// you can remove any UIControls you have added with this code
view.subviews.forEach { (item) in
item.removeFromSuperview()
}
보기는 모든 것을 제거하려는보기입니다. forEach를 수행하여 모든 하위보기를 제거하고 있습니다.
Swift 4+의 경우 UIView
. 필요할 때마다 전화하십시오.
extension UIView {
func removeAllSubviews() {
subviews.forEach { $0.removeFromSuperview() }
}
}