2014-04-02 55 views
0

下面的代碼是在iOS 6中做工精細定製沒有工作,但在IOS 7UISegmentControl在IOS 7

for (id segment in [cell.m_CtrlSegment subviews]) { 

      for (id label in [segment subviews]) { 

       if ([label isKindOfClass:[UILabel class]]) { 

        UILabel *titleLabel = (UILabel *) label; 

        //inserting line here, to make the frame behave nicely: 
        // 
        titleLabel.frame = CGRectMake(0, 0, (cell.m_CtrlSegment.frame.size.width/DownloadCount)-4,40); 
        titleLabel.textColor = [UIColor blackColor]; 
        titleLabel.backgroundColor = [UIColor clearColor]; 
        titleLabel.font = [UIFont systemFontOfSize:12]; 
        titleLabel.textAlignment = UITextAlignmentCenter; 
        titleLabel.lineBreakMode = UILineBreakModeWordWrap; 
        titleLabel.shadowColor = [UIColor darkGrayColor]; 
        titleLabel.numberOfLines = 0; 

       } 
      } 
     } 

標籤的顏色呈藍色,但指數的時候選擇一個代碼工作不工作。

+0

iOS7的層次結構發生了變化,因此請在此處打個分,並檢查UISegmentControllView的子視圖和超級視圖,並根據視圖層次結構自定義所需的子視圖。 –

回答

1

你真的應該不會使用這些類型的黑客,你的應用程序可能會被拒絕,因爲這個原因

2.5

我們還發現,您的應用提供的視圖的組織和佈局 交互內部層次結構,這是一個私人實體。 與私人實體互動不符合應用程序商店評論指南的App 。

appearance代理是最好的,當談到自定義和iOS5可用。

依靠這種層次結構黑客可能也會在未來的iOS中破解,就像你正在試驗一樣。