[英]I created UIDatePicker programmatically and let the UILabel of the selected date show, but failed to let it show properly
我嘗試創建沒有情節提要的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
我是初學者,找不到解決方案。 有人知道如何解決這個問題嗎? 先感謝您。
這是因為您每次更改日期都在創建一個新標簽
您需要重用您的組件,並在加載后創建它
- (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
添加Label
UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(50, 300, 200, 200)];
[self.view addSubview:self.myLabel];
然后在PickerChange
中的標簽中添加日期
self.myLabel.text = [df stringFromDate:[sender date]];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.