gpt4 book ai didi

ios - 我希望我的 UILabel 遵循我的 UISlider 值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:27 25 4
gpt4 key购买 nike

我按照user2207904的代码

在 viewDidLoad 上我创建了 20 个 slider 和 20 个标签

然后我的 20 个标签采用我的推子的值 (label.text= [NSString stringWithFormat:@"%i", slvalue];)

但是像这样如果我移动我的标签不遵循我的推子值...

我怎样才能让我的标签跟随我的推子值?

我的代码

- (void)viewDidLoad
{
[super viewDidLoad];
for(int i=0; i< 20; i++){
//sliders
UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(1+i*50, 450, 300, 10)] autorelease];
slider.minimumValue = 1;
slider.maximumValue = 100;
slider.continuous = YES;
[self.view addSubview:slider];
slider.transform = CGAffineTransformRotate(slider.transform, 270.0/180*M_PI);
[slider setThumbImage:thumbImage0 forState:UIControlStateNormal];
[slider release];
// label
UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(1+i*50, 640, 40, 15)];
int slvalue = slider.value;
label.text= [NSString stringWithFormat:@"%i", slvalue];
[self.view addSubview:label];
[label release];

}

新问题:

修改

我这样做:

我在我的 FirstViewController.m 中放了一个 IBAction

- (IBAction)sliderUpdate:(UISlider *)sender {
self.label.text = [NSString stringWithFormat:@"%g", sender.value];
}

并将其放入我的 viewDidLoad (FirstViewController.m)

{
[super viewDidLoad];
for(int i=0; i< 20; i++){
//sliders
UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(1+i*50, 450, 300, 10)] autorelease];
slider.minimumValue = 1;
slider.maximumValue = 100;
slider.continuous = YES;
[slider addTarget:self action:@selector(sliderUpdate:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slider];
slider.transform = CGAffineTransformRotate(slider.transform, 270.0/180*M_PI);
[slider setThumbImage:thumbImage0 forState:UIControlStateNormal];
[slider release];
// label
UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(1+i*50, 640, 40, 15)];
int slvalue = slider.value;
label.text= [NSString stringWithFormat:@"%i", slvalue];
[self.view addSubview:label];
[label release];
}

我的(IBAction)sliderUpdate 中有这个错误:在“FirstViewController *”类型的对象上找不到属性“标签”

最佳答案

如果您控制从 slider 拖动到 UIViewController 的实现,它会设置一个 IBAction 方法,每当值发生变化时都会调用该方法。在这种方法中,只需设置标签的文本。无需制作特殊的子类。

代码最终看起来像这样:

- (IBAction)setLabel:(UISlider *)sender {
self.myLabel.text = [NSString stringWithFormat:@"%g", sender.value];
}

编辑:听起来您正在以编程方式制作 slider 。在这种情况下,您将不得不对每个调用 addTarget:action:forControlEvents: 以设置目标操作。 (控件事件将为 UIControlEventValueChanged。)

此外,就知道哪个 slider 指向哪个标签而言,您可以创建 2 个 NSArray,其中一个数组中的第 i 个 slider 与另一个数组中的第 i 个标签匹配。

关于ios - 我希望我的 UILabel 遵循我的 UISlider 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15713105/

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