2012-11-05 63 views
0

我怎樣才能得到的label.text裏面的視圖添加到UIScrollview但以特定的順序,每個標籤有一個連續的標籤1,2,3,4,5,這是很重要的,因爲每一個都需要保存在按順序排列數組。如何根據標籤或類似內容以特定順序在UIScrollview中獲取子視圖的內容?

問題是,當使用搜索時,它以不同的順序發送標籤,我如何控制它?

我的代碼搜索是:

for (UIView *addedView in [self.scrollView subviews]){ 
    for (UIView *sub in [addedView subviews]) 
    { 
     if([sub isKindOfClass:[UILabel class]]) 
     { 
      UILabel *myLabel = (UILabel *)sub; 
      [array addObject:mylabel.text]; 
     } 
    } 
} 
+0

你的滾動視圖可以包含多個子視圖均具有標記爲0 – akshay1188

回答

2
for (int i = 1 ;i <= [self.scrollView.subviews count] ;i++){ 
     UIView *myView = (UIView *) [addedView viewWithTag:i]; 

      if(myView && [myView isKindOfClass:[UILabel class]]){ 
      UILabel *label = (UILabel *)myView; 
      [array addObject:label.text];); 
     } 
    } 
+0

這將需要所有子視圖,但如果標籤= 2不存在標籤,會發生什麼?我猜應用程序會在運行時崩潰。 –

+0

檢查更新後的答案.. – AppleDelegate

+0

太好了,謝謝你的回答 –

2

你爲什麼不根據他們攜帶的標籤訪問您的看法?

UIView* view = [self.scrollView viewWithTag:tag]; 

如果遍歷所有已定義的標記,這將允許您控制處理視圖的順序。否則,我懷疑subviews將鏡像子視圖堆疊順序。你可以嘗試用:

for (NSUInteger i = 1; i <= 5; ++i) { 
    UIView* view = [self.scrollView viewWithTag:i]; 
    ... 
} 

更妙的是,你還可以指定標籤的標籤,然後使用:

for (NSUInteger i = 1; i <= 5; ++i) { 
    UIView* view = [self.scrollView viewWithTag:i]; 
    UILabel* myLabel = (UILabel*)[view viewWithTag:kLabelTag]; 
    ... 
}