ios 移除特定的子視圖或移除所有子視圖

視圖層移除

如果要移除一個 UIView 的所有子視圖

    for(UIView *view in [self.view subviews])
    {
        [view removefromsuperview];
    }

如果要移動指定類型的視圖

for(UIView *mylabelview in [self.view subviews])
{
    if ([mylabelview isKindOfClass:[UILabel class]]) {
        [mylabelview removeFromSuperview];
    }
}

如果你是想找到某個視圖中的一個特定的子視圖,并且將其移除,方法如下:

//依次遍歷self.view中的所有子視圖
for(id tmpView in [self.viewsubviews])
{
    //找到要刪除的子視圖的對象
    if([tmpView isKindOfClass:[UIImageViewclass]])
    {
        UIImageView *imgView = (UIImageView *)tmpView;
        if(imgView.tag == 1)   //判斷是否滿足自己要刪除的子視圖的條件
        {
            [imgView removeFromSuperview]; //刪除子視圖
            
            break;  //跳出for循環(huán),因?yàn)樽右晥D已經(jīng)找到,無須往下遍歷
        }
    }
}

如果你是想徹底釋放此視圖,直接release或者autorelease就可以了。


拓展:

- (void)addSubview:(UIView *)view 
//添加子視圖
- (void)removeFromSuperview 
//從父視圖中移除

- (void)bringSubviewToFront:(UIView *)view
//移動指定的子視圖到最頂層
- (void)sendSubviewToBack:(UIView *)view
//移動制定的子視圖到后方,所有子視圖的下面

- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
//在指定的位置插入子視圖,視圖的所有視圖其實(shí)組成了一個數(shù)組
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview
//將指定的子視圖移動到指定siblingSubview子視圖的前面
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview
//將指定的子視圖移動到指定siblingSubview子視圖的后面
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2
//交換兩子視圖的位置

- (BOOL)isDescendantOfView:(UIView *)view
//判斷接收對象是否是指定視圖的子視圖,或與指定視圖是同一視圖

此外

insertSubview:atIndex: (放到index層,越往下,index越小)

insertSubview:A aboveSubview:B(把前一個ViewA放在后一個ViewB 的上面)

insertSubview:A belowSubview:B(把前一個ViewA放在后一個ViewB 的下面)

整理

bringSubviewToFront: (把一個View放到上面)

sendSubviewToBack:(把一個View放到下面)

exchangeSubviewAtIndex:withSubviewAtIndex:(來修改遮擋。我的理解是view按照控件加進(jìn)去的順給了個index,這個index從0開始遞增。顯示的時候index數(shù)值較大控件遮擋數(shù)值較小的。 上面這個函數(shù)交換兩個控件位置)

刪除

removeFromSuper view(從父類中刪除)


感謝關(guān)注!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容