2014-09-01 132 views
7

當我開發iOS8上的今天擴展,我設置一個UITableViewController爲 主視圖controller.And我遇到了這樣的問題:當我使用初始化的initWithStyle UITableViewCell中的UITableView:在空白區域單擊不會觸發didSelectRowAtIndexPath方法

: UITableViewCellStyleDefault in cellForRowAtIndexPath,一個單元格的整個區域可以正常觸發didSelectRowAtIndexPath 。但是,當將UITableViewCellStyle設置爲UITableViewCellStyleValue1, UITableViewCellStyleValue2或UITableViewCellStyleSubtitle時,我只能通過點擊detailTextLabel或imageView的區域來觸發 didSelectRowAtIndexPath。點擊其他空白 區域將無法回覆。

我試着將tableview的委託設置爲self,在cellForRowAtIndexPath中設置了detailTextLabel和imageView的 setUserInteractionEnabled:false,並且所有這些都不起作用。 有人對此有任何想法嗎?

P.S.我沒有使用storyboard或xib文件,只是代碼。

我發現在Android上一個同樣的問題: I'd like to click anywhere (blank area) in a list view

回答

8

我遇到了這個自己,同時試圖顯示UITableViewTodayView內。雖然我不知道爲什麼會發生這種情況,但我發現這隻發生在UITableViewCell背景爲clearColor時。如果您將背景設置爲其他顏色,則會調用didSelectRowAtIndexPath。但是,下面是一個快速解決方法 - 將UILabel延伸到單元格的整個區域contentView,然後每次都會調用委託方法。無論如何,這看起來像一個錯誤。

+0

謝謝,它確實有效。最後,我添加了一個幾乎透明的背景顏色來修復這個不雅。應該是一個iOS錯誤,因爲如果我將bg顏色的alpha設置爲0.002,它可以工作,但0.001不起作用。 – CodeRain 2014-11-25 08:17:54

相關問題