Ios 我以编程方式创建了UIDatePicker,并让所选日期的UILabel显示,但未能让它正确显示
我试图创建不带故事板的UIDatePicker,让选定日期的UILabel显示出来,但当在模拟器上拾取另一个日期时,标签显示得就像是堆积起来的一样Ios 我以编程方式创建了UIDatePicker,并让所选日期的UILabel显示,但未能让它正确显示,ios,objective-c,uidatepicker,programmatically-created,Ios,Objective C,Uidatepicker,Programmatically Created,我试图创建不带故事板的UIDatePicker,让选定日期的UILabel显示出来,但当在模拟器上拾取另一个日期时,标签显示得就像是堆积起来的一样 - (void)viewDidLoad { [super viewDidLoad]; UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 10,100,100)]; [self.view addSubview:myLabel]; UIDat
- (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];
}
截图如下:
我是个初学者,找不到解决办法。有人知道如何解决这个问题吗?提前感谢。这是因为每次日期更改时,您都会创建一个新标签 您需要重用组件,在视图中创建它
- (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]];
}
这是因为每次日期更改时,您都要创建一个新标签 您需要重用组件,在视图中创建它
- (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]];
}
首先在
viewDidLoad
UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(50, 300, 200, 200)];
[self.view addSubview:self.myLabel];
然后在标签的PickerChange
self.myLabel.text = [df stringFromDate:[sender date]];
首先在
viewDidLoad
UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(50, 300, 200, 200)];
[self.view addSubview:self.myLabel];
然后在标签的PickerChange
self.myLabel.text = [df stringFromDate:[sender date]];
谢谢真的很好吃,谢谢!它真的很管用。