2011-03-09 56 views
1

我這裏出狀況了,請幫我在這,的iPad:酥料餅沒有出現在適當的地方

1)我有自定義的細胞 2)每個單元有2個搜索酒吧和2個標貼的表。

我正在嘗試的是假設用戶開始編輯searchBar彈出窗口應該出現指向該搜索欄。

我已經實現了這一點,但酥料餅沒有出現過酥料餅的期望的搜索欄而且高度也太長一段

if (searchBar.tag==10) { 
    NSLog(@"Display date popover"); 
    CGRect pickerFrame = CGRectMake(0,0,300,200); 

    UIViewController *tempDateViewController=[[UIViewController alloc] init]; 

    UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:pickerFrame]; 

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

    [tempDateViewController.view addSubview:datePicker]; 

    if(!currentPopover) 
    { 

     currentPopover=[[UIPopoverController alloc] initWithContentViewController:tempDateViewController]; 
    } 
    else { 

     [currentPopover setContentViewController:tempDateViewController animated:YES]; 

    } 

    tempDateViewController.contentSizeForViewInPopover=CGSizeMake(320, 300); 
    [datePicker release]; 
    [tempDateViewController release]; 
    [currentPopover presentPopoverFromRect:searchBar.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 



} 

請幫我解決這個問題之一。 Thanx提前。

+0

什麼方法是這樣的代碼? searchBar變量是如何設置的? – Anna 2011-03-10 04:00:29

+0

searchBarDidBeginEditing – 2011-03-10 07:39:54

回答

3

searchBar位於表格視圖中的單元格內(根據您的佈局,可能會在其他視圖中)。最可能的問題是,self.view不是searchBar的直接父對象,您在此調用它。因此,在self.view中使用searchBar的框架會給出意想不到的結果。

而不是使用self.view並試圖找出其中的搜索欄是相對於中,你可以使用搜索欄本身對於「inView」,爲「矩形」,使用搜索欄的邊界:

[currentPopover presentPopoverFromRect:searchBar.bounds inView:searchBar 
    permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 


接下來,修復酥料餅的高度,嘗試設置酥料餅的popoverContentSize 而不是視圖控制器的contentSizeForViewInPopover:

//tempDateViewController.contentSizeForViewInPopover=CGSizeMake(320, 300); 
currentPopover.popoverContentSize = CGSizeMake(320, 300); 


最後,一個獨立的問題,但是,對於一個日期選擇器的最小高度應爲216,而非200:

CGRect pickerFrame = CGRectMake(0,0,300,216);