2009-04-20 26 views
1

我有一個奇怪的問題,我爲iPhone構建的自定義控件在調試模式下構建時完美工作,但只在構建於發佈模式時才部分工作。觸摸方法不能與發佈版本

主包裝視圖是UIView的子類,它包含一排作爲子視圖添加的「按鈕」。自定義按鈕類擴展UIImageView和壓倒一切的觸摸方法具有以下特徵:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

在構建調試代碼,這些功能全部4個被稱爲在你所期望的時間,與發佈版本,沒有任何反應。我登錄了其中的每一個,但沒有收到任何日誌消息(其他日誌記錄正在運行)。

另一個有趣的事情,我有touchesBegan/Moved/Ended方法重寫在包裝視圖類,他們工作正常。我試過在包裝類中註釋掉這些方法,看看它是否對按鈕有影響,但沒有。

我也嘗試將UIImageView類更改爲UIButton的子類,但它們的問題相同,包括touchUpInside之類的任何事件。他們在調試中工作,但不能發佈。

我試過研究這個問題以及一般事件處理,並且出現了空手。任何想法接下來看看?

+0

從這個信息有點難以分辨。清理所有目標並重建發佈版本時,是否會收到警告?您的版本是否構建在與調試版本不同的目標中? – 2009-04-21 05:52:18

回答

3

我終於想出了這個問題 - 「按鈕」項目的包裝的高度爲0.在調試模式下,應用程序發現按鈕被觸摸,即使它們不在觸摸區內他們的父視圖(clipsToBounds默認爲NO,因此按鈕項仍然完全可見),在發佈模式中,並非如此。

希望這可以幫助拯救一些人頭部劃傷和調試時間,我不得不通過:)我也發佈了這個到蘋果的錯誤,所以希望它有一天會被修復。