gpt4 book ai didi

ios - 我以编程方式创建了 UIDatePicker 并让所选日期的 UILabel 显示,但未能让它正确显示

转载 作者:行者123 更新时间:2023-11-28 21:31:59 25 4
gpt4 key购买 nike

我尝试在没有 Storyboard的情况下创建 UIDatePicker 并让所选日期的 UILabel 显示,但是当在模拟器上选择另一个日期时,标签显示为堆积。

- (void)viewDidLoad {
[super viewDidLoad];

UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 10,100,100)];
[self.view addSubview:myLabel];

UIDatePicker *myPicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];

myPicker.datePickerMode = UIDatePickerModeDate;

[myPicker addTarget:self action:@selector(pickerChanged:) forControlEvents:UIControlEventValueChanged];

[self.view addSubview:myPicker];
}


- (void)pickerChanged:(id)sender
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(50, 300, 200, 200)];

df.dateFormat = @"yyyy/MM/dd HH:mm";
myLabel.text = [df stringFromDate:[sender date]];
[self.view addSubview:myLabel];
}

截图如下: http://i.stack.imgur.com/VnJbD.png

我是初学者,找不到解决方案。有人可以知道如何解决这个问题吗?提前谢谢你。

最佳答案

这是因为每次日期更改时您都在创建一个新标签

您需要重用您的组件,在加载 View 中创建它

- (void)viewDidLoad() {
....
self.myLabel = [[UILabel alloc]initWithFrame:CGRectMake(50, 300, 200, 200)];
[self.view addSubview:self.myLabel];
}

那么你就可以设置文本了:

- (void)pickerChanged:(id)sender {
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateFormat = @"yyyy/MM/dd HH:mm";
self.myLabel.text = [df stringFromDate:[sender date]];
}

关于ios - 我以编程方式创建了 UIDatePicker 并让所选日期的 UILabel 显示,但未能让它正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35638141/

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