簡體   English   中英

如何根據對應於其添加的索引刪除子層?

[英]How to remove a sublayer based on an index corresponding to their addition?

我有一個帶有很少子視圖的視圖,並且在視圖上以小點繪制了一些子層。 問題是在刪除它們時。

我有一個點數組,我知道要刪除的點的索引,現在我想刪除基於該點的索引添加的子層。

視圖的子層返回一個NSArray層,但是它的層數比我添加的層數多,當我基於索引刪除一個子層時,我的視圖的某些子視圖會消失。

誰能告訴我一個好的解決方案?

尼克的答案雖然對子視圖正確,但並未回答Amogh的問題-即如何查找子圖層。 從TableViewCell的remove imageView子圖層上發布了一個有關子視圖的好答案,提供了三種解決方案供您選擇。

使用標簽。 在每個視圖的值都映射到數組索引的視圖上設置一個標簽,然后通過標簽而不是在子視圖數組中的索引來刪除視圖。

我建議使用偏移號,因此標記將是100、101、102等,而不是0、1、2等,因為0是所有視圖的默認標記,因此刪除標記為零的視圖將導致同樣的問題已經。

這是您需要的代碼:

#define TAG_OFFSET 100

//add the views
for (int i = 0; i < [array count]; i++)
{
    UIView *view = //create subview based on array index
    view.tag = TAG_OFFSET + i;
    [containerView addSubview:view];
}

//remove view at index 5
[[containerView viewWithTag:TAG_OFFSET + 5] removeFromSuperview];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM