UIScrollView有一個UIButton。點擊UIButton會導致UIPopoverController從一個指定的rect中呈現它自己。 UIPopoverController的contentViewController是一個帶有UIDatePicker的UIViewController。當按鈕被點擊,其燒製
代碼(按鈕的類型是自定義的帶觸摸起來註冊內部抽頭):
- (void)showCalendar:(id)sender {
dateViewController = [[UIViewController alloc] init];
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, 240, 200)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden = NO;
datePicker.date = [NSDate date];
[datePicker addTarget:self
action:@selector(DateChanged:)
forControlEvents:UIControlEventValueChanged];
NSLocale *US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSCalendar *cal = [NSCalendar currentCalendar];
[cal setLocale:US];
[datePicker setCalendar:cal];
[datePicker setMaximumDate:[NSDate date]];
dateViewController.view = datePicker;
dateViewController.contentSizeForViewInPopover = CGSizeMake(240, 200);
self.popoverController = [[UIPopoverController alloc]
initWithContentViewController:dateViewController];
self.popoverController.delegate = self;
NSLog(@"YESYESYES");
[self.popoverController presentPopoverFromRect:CGRectMake(753, 513, 1, 1) inView:parentView permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
NSLog(@"NONONO");
}
有兩個的NSLog語句之間明顯的1秒以上的滯後時,我將設備連接到Xcode並運行該應用程序。可能是這種滯後的原因是什麼?
更換
它可以在後臺線程而非主線程發出?如果您有一個調用此方法的'IBAction',請將該方法放在GCD主隊列中。 – Baub 2012-08-02 06:55:07
沒有。它在主線程上運行。 – Bourne 2012-08-02 09:39:57
當按鈕被按下時,這個方法叫做?或者是從另一種方法調用此方法? (即IBAction或其他) – Baub 2012-08-02 15:25:31