gpt4 book ai didi

ios - 需要将使用 Interface Builder 创建的 UISlider 连接到非事件代码

转载 作者:行者123 更新时间:2023-12-01 16:33:53 25 4
gpt4 key购买 nike

我有一个 ViewController 填充几个 slider ,如下所示:

// ViewController.h
@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UISlider *aSlider;
@property (weak, nonatomic) IBOutlet UISlider *anotherSlider;

@end

// ViewController.m
@interface ViewController ()

@end

@implementation ViewController

-(void)resetSliders
{
NSLog(@"Resetting sliders sl1: %@ sl2: %@", self.aSlider, self.anotherSlider);
[self.aSlider setValue:0.5f animated:NO];
[self.anotherSlider setValue:0.5f animated:NO];
}

- (IBAction)setOneSlider:(UISlider *)sender {
NSLog(@"Setting aSlider to %f", sender.value);
self.sl1Val = sender.value;
[self doAThing];
}

- (IBAction)setTwoSlider:(UISlider *)sender {
NSLog(@"Setting anotherSlider to %f", sender.value);
self.sl2Val = sender.value;
[self doBThing];
}
@end

调用 setOneSlidersetTwoSlider连接到两个 slider 的值更改事件。这工作得很好。不幸的是,我没有将 slider 连接到它们的程序句柄,因为对 resetSliders 的调用即使在 setNeedsDisplay 中添加了调用,UI 也不会发生任何变化在两个 slider 元素上。

resetSliders被调用,日志显示:
2015-04-28 12:22:19.608 myApp[4489:681127] Resetting sliders sl1: (null) sl2: (null)

谁能告诉我如何设置 self.aSliderself.anotherSlider使用正确的对象句柄?

添加一些颜色:我已将 slider 的 UI 表示拖到它们各自的 @property 声明中,我可以看到它们在边缘填充了灰色圆圈,表明它们已被连接。 Connections Inspector 显示“值已更改”事件触发器和将 myApp 连接到 slider 的引用 socket 。

我对 IOS 编程非常陌生,并且正在达到通过失败学习的极限。

最佳答案

属性应该在 @interface 中定义。 block 。你的目前在外面。此外,它们可能应该是 weak而不是 retain ,并且不需要 @synthesize声明或 ivars。

最后,当你在代码中引用它们时,你应该这样做 self.aSlider ,而不仅仅是 aSlider .

关于ios - 需要将使用 Interface Builder 创建的 UISlider 连接到非事件代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926890/

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