2013-12-16 60 views
0

我在我的UITableview單元格中添加了自定義UIButtons。
使用下面的代碼: -UITableview單元格中的按鈕不會在快速點擊中突出顯示

UIButton *btnOtherCount=[UIButton buttonWithType:UIButtonTypeCustom]; 

    btnOtherCount.frame=CGRectMake(577, 43, 110, 60); 
    [btnOtherCount setBackgroundImage:[UIImage imageNamed:@"orange.png"] forState:UIControlStateNormal]; 
    [btnOtherCount setTitle:@" Nonfiction - Other - 0" forState:UIControlStateNormal]; 
    btnOtherCount.titleLabel.lineBreakMode=NSLineBreakByWordWrapping; 
    btnOtherCount.titleLabel.textAlignment = NSTextAlignmentCenter; 
    btnOtherCount.titleLabel.font=[UIFont boldSystemFontOfSize:13.0f]; 
    [btnOtherCount setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
    [btnOtherCount addTarget:self action:@selector(done:) forControlEvents:UIControlEventTouchDown]; 
    [cell.contentView addSubview:btnOtherCount]; 

的問題是,當我嘗試點擊單元格按鈕,它不會突出顯示,以快速觸摸或者如果我點擊快速或連續觸摸彼此等之後,但在我點擊穩定和更有力(不長按),它突出顯示。

重要的是相應的操作方法在兩種情況下都會被調用,即慢速點擊和快速點擊。

回答

0

這是iOS7的一個新問題。現在在UITableviewCell的視圖層次結構中有一個滾動視圖。該滾動視圖檢查在按鈕獲得觸地事件之前是否需要接管觸摸動作。有此一劈修復,你的初始化中添加以下代碼:

for (id obj in self.subviews) 
{ 
    if ([NSStringFromClass([obj class]) isEqualToString:@"UITableViewCellScrollView"]) 
    { 
     UIScrollView *scroll = (UIScrollView *) obj; 
     scroll.delaysContentTouches = NO; 
     break; 
    } 
} 

這是不理想,但它適合我的細胞。我不使用UITableViewCell中的scrollview,所以我可以做這個破解。如果你需要scrollview的功能,那麼這可能會給你帶來破壞。

+1

這是一個非常脆弱的問題。它依賴於在UIKit中操作私有類。壞的魔咒。 –

+0

還有一個可怕的內存泄漏,動畫桌面單元通過混合功能修復。在內部代碼被修復之前,這些脆弱的修復都是可以完成的。或者你可以處理iOS7的新「改進」行爲。 – Putz1103

+0

@ Putz1103,嗨thanx爲你的幫助,但它仍然沒有任何區別。 – ViruMax

相關問題