2012-04-10 24 views
0
後不存在的

請檢查代碼事件添加的UIDatePicker上UIActionSheet

-(IBAction)showDateSheet{ 
dateSheet=[[UIActionSheet alloc]initWithTitle:@"Select Test Date" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:nil]; 
datePicker=[[UIDatePicker alloc]init]; 
[datePicker addTarget:self action:@selector(changeDateInLabel:) forControlEvents:UIControlEventValueChanged]; 
dateSheet.delegate=self; 
//[dateSheet setFrame:CGRectMake(0, 117, 320, 383)]; 
datePicker.datePickerMode=UIDatePickerModeDate; 
CGRect pickerRect=datePicker.bounds; 
pickerRect.origin.y=-100; 
datePicker.bounds=pickerRect; 
[dateSheet addSubview:datePicker]; 
[dateSheet showInView:self.view]; 
[dateSheet setBounds:CGRectMake(0.0f, 0.0f, 320, 500)]; 

//[datePicker release]; 
//[dateSheet release]; 

    } 

通過上面的代碼,我不能夠點擊取消按鈕,當我取消按鈕沒有挖掘偏偏

回答

1

你的錯誤是設定datePicker界限,像這樣:

CGRect pickerRect=datePicker.bounds; 
pickerRect.origin.y=-100; 
datePicker.bounds=pickerRect; 

基本上在選擇器繪製移動你做了什麼,但不是選取器框架的位置。要更清楚地看到此選項,請將選取器的clipsToBounds屬性設置爲YES,然後查看所得結果。即使您沒有設置clipsToBounds,您也無法與以下部分進行互動。

你實際上想要做的是將幀的原點設置下來,而不是邊界的原點上,由一定數量的點。工作代碼看起來像這樣:

CGRect pickerRect=datePicker.frame; 
pickerRect.origin.y+=110; 
datePicker.frame=pickerRect; 
0

您需要添加動作片像這樣的按鈕...

UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Close"]]; 
closeButton.momentary = YES; 
closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f); 
closeButton.segmentedControlStyle = UISegmentedControlStyleBar; 
closeButton.tintColor = [UIColor blackColor]; 
[closeButton addTarget:self action:@selector(dismissActionSheet:) forControlEvents:UIControlEventValueChanged]; 
[dateSheet addSubview:closeButton]; 
[closeButton release]; 

這是調用[dateSheet showInView:self.view];

0123前完成

然後在選擇只寫這個..

[actionSheet dismissWithClickedButtonIndex:0 animated:YES]