gpt4 book ai didi

iphone - UIControl子类无法获取目标?

转载 作者:行者123 更新时间:2023-12-03 19:25:38 27 4
gpt4 key购买 nike

我有 UIControl 的子类,并在其中发送:

[self sendActionsForControlEvents:UIControlEventValueChanged];

当我创建对象的实例时,我添加一个目标,如下所示:

[starView addTarget:self action:@selector(starRatingChanged:) forControlEvents:UIControlEventValueChanged];

View 显示得很好,即使没有目标,功能也能正常工作。但添加目标后,它崩溃了。有什么想法吗?

我的类声明为:

@interface RMStarRating : UIControl {...}

无论如何,我在 - (void)layoutSubviews 中设置了我的 View 。为了正确保存目标或向目标发送正确的操作,我是否需要子类化另一种方法?我认为 UIControl 负责为您保存目标和操作。

更新:尝试提供更多信息

我按如下方式设置对象:

RMStarRating *starView = [[RMStarRating alloc] initWithFrame:CGRectMake(10, 70, 23*5, 30)];
[starView addTarget:self action:@selector(starRatingChanged:) forControlEvents:UIControlEventValueChanged];
....
[self.view addSubview:starView];

我的sendAction,根据Jordan的建议:

- (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

调试器有:

debugger picture

最佳答案

您是否尝试过实现

- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event

相反?一个很好的例子在这里:

Can I override the UIControlEventTouchUpInside for a UISegmentedControl?

关于iphone - UIControl子类无法获取目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3992448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com