我有子类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