2014-01-13 56 views
1

此代碼一個UITableViewCell子類中,在iOS 5和6偉大的工作:更改紅色減號按鈕的位置在一個UITableViewCell在編輯模式下

if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) { 
     CGRect newFrame = subview.frame; 
     //Use your desired x value 
     newFrame.origin.x = 280; 
     subview.frame = newFrame;  
} 

在調試我的應用程序在iOS 7我已經找到以上所有子視圖都稱爲UITableViewCellContentView,並且無法知道UITableViewCellEditControl子視圖的位置。

有沒有更好的解決方案來做到這一點?

+0

試穿子視圖遞歸檢查 – santhu

+0

@santhu已經做到了,發現'UITableViewCellEditControl'是一個子視圖的子視圖裏我已經張貼的答案,謝謝 – Segev

+0

我曾經過這個問題來破解但人們說如果我們這樣做,應用程序可能會被蘋果拒絕 – santhu

回答

1

在調試時我發現iOS 7中的所有子視圖現在都被稱爲'UITableViewCellEditControl',我試着記錄下所有的子視圖子視圖,發現UITableViewCellEditControl現在是子視圖的子視圖,這是一個醜陋的臨時解決方案:。

for (UIView *subview in self.subviews) 
    { 
     if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) { 
      CGRect newFrame = subview.frame; 
      newFrame.origin.x = 280; 
      subview.frame = newFrame; 
     } 
     else 
     { 
      if(IS_OS_7_OR_LATER) 
      { 
       for(UIView *subsubview in subview.subviews) 
       { 
        if ([NSStringFromClass([subsubview class]) isEqualToString:@"UITableViewCellEditControl"]) { 
         CGRect newFrame = subsubview.frame; 
         newFrame.origin.x = 280; 
         subsubview.frame = newFrame; 
        } 
       } 
      } 
     } 
相關問題