我有子類UIControl,並在其中我送:UIControl子類無法獲取目標?
[self sendActionsForControlEvents:UIControlEventValueChanged];
當我創建的對象的實例,我添加了一個目標如下:
[starView addTarget:self action:@selector(starRatingChanged:) forControlEvents:UIControlEventValueChanged];
的視圖顯示了罰款,如果目標不在那裏,那麼功能運作良好。但是添加目標時,它會崩潰。任何想法爲什麼?
我的類都被定義爲:
@interface RMStarRating : UIControl {...}
對於什麼是值得的,我建立了我的觀點在- (void)layoutSubviews
。是否還有另外一種方法需要進行子類化才能正確保存目標或爲目標發送正確的操作?我認爲UIControl會爲您節省目標和行動。
UPDATE:努力提供更多信息
我設定的目標,如下所示:
RMStarRating *starView = [[RMStarRating alloc] initWithFrame:CGRectMake(10, 70, 23*5, 30)];
[starView addTarget:self action:@selector(starRatingChanged:) forControlEvents:UIControlEventValueChanged];
....
[self.view addSubview:starView];
我sendAction,根據喬丹的建議:
- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event {
NSLog(@"send action");
[super sendAction:action to:target forEvent:event];
}
我的函數調用sendActionsForControlEvents :
- (void)updateValue:(UITouch *)touch {
....
NSLog(@"sendActionsForControlEvents");
[self sendActionsForControlEvents:UIControlEventValueChanged];
}
和應調用的函數(它是在頭太):
- (void)starRatingChanged:(id)sender {
NSLog(@"star rating changed");
}
和日誌剛剛吐出:
2010-10-22 09:45:41.348 MyApp[72164:207] sendActionsForControlEvents
2010-10-22 09:45:41.350 MyApp[72164:207] send action
調試器有:
它爲什麼會崩潰?什麼行代碼?調用堆棧說什麼?推測性診斷崩潰可能很困難。 – 2010-10-21 22:37:17
我不知道它爲什麼崩潰,這是我想找出。它在sendActionsForControlEvents上崩潰:(除非我實現了Jordan的答案,在這種情況下,它在崩潰期間)。我想,在UIController和我的班級的連接之間出現了一些問題。日誌在死亡時不會吐出任何東西。 – RyanJM 2010-10-21 23:38:31