ScrollView的某些特定subviews的刪除

工作之余唧领,找到了一些有趣的代碼做測試处嫌。不過在這測試的過程中而涉,遇到了一些平時不經(jīng)常注意的小問題。

我利用以下代碼給scrollview添加了subviews瞳秽,

self.colCount = num;

CGFloat marginX = (self.view.bounds.size.width - self.colCount * imageW) / (self.colCount + 1);

CGFloat marginY = 40;

for (int i = 0; i<7; i++) {

int row = i / self.colCount;

int col = i % self.colCount;

CGFloat x = marginX + col * (marginX + imageW);

CGFloat y = marginY + row * (marginY + imageH);

UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"psb-%d",i+1]]];

image.frame = CGRectMake(x, y, imageW, imageH);

[self.scrollView addSubview:image];

}

因為后續(xù)功能需要將之前添加的subviews移除瓣履;恰恰在移除subviews的時候遇到了一些小問題,無法正確移除scrollview下的subviews练俐;以下是相關(guān)的移除代碼(遍歷subviews袖迎,將每一個subview移除)

for (int i = 0; i< self.scrollView.subviews.count; i++) {

[self.scrollView.subviews[i] removeFromSuperview];

}

但不巧的是,和我一樣的小白并不熟知scrollview內(nèi)部的構(gòu)造腺晾,以及subviews.count也在移除subview的同時遞減燕锥;導(dǎo)致出現(xiàn)不想要的結(jié)果。經(jīng)過測試得知---scrollview的subviews會比已知添加的要多出3個subview(1個Button類型悯蝉,2個UIimageView類型),button類型的subview1應(yīng)該是scrollview的滾動軸归形,UIimageView類型的subview2,3就不得而知了泉粉。

為了移除上述新添加的7個subviews连霉,好區(qū)別于scrollview自帶的兩個UIimageView類型的subview嗡靡,于是自定義一個新的類型iconImageView跺撼,繼承自UIimageView讨彼,并在移除之前做相關(guān)類型的判斷,移除符合條件的subview哈误。

分析:i 一直在增加,0菩貌,1,2重荠,3....,但是count卻也在減少10戈鲁,9,8婆殿,7;第i次移除怕磨,就會移除 自上一次移除之后生成新的scrollview.subviews的第i個subview;每當(dāng)成功移除一個符合條件的subview之后寞缝,scrollView.subviews.count隨之遞減癌压,但i并不是從第0個開始遍歷荆陆,導(dǎo)致不能完全遍歷scrollView的所有subviews。于是最終就會移除原來scrollview.subviews的第0被啼,2,4浓体,6個subview才會導(dǎo)致上述問題的發(fā)生;

為了避免這個問題娄猫,可以采取遞減的方法移除贱除,每次都從新的scrollview.subviews的最后一個開始移除媳溺。以下是代碼

for (int i = (int)self.scrollView.subviews.count-1; i>0; i--) {

if ([self.scrollView.subviews[i] isKindOfClass:[iconImageView class]]) {

?[self.scrollView.subviews[i] removeFromSuperview];

}}

分析:i遞減 ? 9,8悬蔽,7.....,每當(dāng)成功移除一個符合條件的subview之后录语,雖然scrollView.subviews.count少了,但是還是會從最后一個遍歷澎埠,并不會放過任何一個符合條件的subview痰哨。

還有另一種漸變的方法來實現(xiàn)上述遍歷移除,只是換了一種表達(dá)方式鳄虱,并且更加方便快捷。

for (iconImageView *subview in [self.scrollView subviews])?

{ ? ?[subview removeFromSuperview]; ? }

最后得出的功能效果圖如下:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拙已,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子倍踪,更是在濱河造成了極大的恐慌,老刑警劉巖建车,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缤至,死亡現(xiàn)場離奇詭異,居然都是意外死亡领斥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門月洛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人细层,你說我怎么就攤上這事惜辑∫呤辏” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵虚缎,是天一觀的道長钓株。 經(jīng)常有香客問我,道長轴合,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任受葛,我火速辦了婚禮,結(jié)果婚禮上总滩,老公的妹妹穿的比我還像新娘。我一直安慰自己闰渔,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布茂附。 她就那樣靜靜地躺著督弓,像睡著了一般营曼。 火紅的嫁衣襯著肌膚如雪愚隧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天狂塘,我揣著相機與錄音,去河邊找鬼睹耐。 笑死,一個胖子當(dāng)著我的面吹牛硝训,可吹牛的內(nèi)容都是我干的新思。 我是一名探鬼主播赘风,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼邀窃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鞍历,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肪虎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扇救,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年装畅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沧烈。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖徽千,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情双抽,我是刑警寧澤闲礼,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布牍汹,位于F島的核電站柬泽,受9級特大地震影響慎菲,放射性物質(zhì)發(fā)生泄漏锨并。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一解幼、第九天 我趴在偏房一處隱蔽的房頂上張望抑党。 院中可真熱鬧,春花似錦撵摆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳄逾。三九已至牵素,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間笆呆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工赠幕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人榕堰。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓嫌套,卻偏偏與公主長得像,于是被迫代替她去往敵國和親踱讨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • *7月8日上午 N:Block :跟一個函數(shù)塊差不多莺治,會對里面所有的內(nèi)容的引用計數(shù)+1,想要解決就用__block...
    炙冰閱讀 2,473評論 1 14
  • //設(shè)置尺寸為屏幕尺寸的時候self.window = [[UIWindow alloc] initWithFra...
    LuckTime閱讀 793評論 0 0
  • 1.nav1.navigationBar.barStyle=UIBarStyleBlack; //改變導(dǎo)航欄背景顏...
    SadMine閱讀 1,554評論 1 4
  • 將軍安 流火是匹白狼妖。 自記事起滋早,便與祖父寓居在慕府一處荒廢的園子里榄审。 煙柳畫橋杆麸,廊橋樓閣怨绣。慕府端得上精致的江南...
    公子無恙閱讀 279評論 0 0
  • 想和父親說點什么匆瓜。父親,我被您給予了生命驮吱,我愛這個生命,我也愛您左冬。我從你手中接過了那個使命,也接過了更多的東西梅忌。你...
    Padama閱讀 203評論 0 0