2013-03-14 82 views
0

在我的應用程序的按鈕被放置在視圖底部controller.while點擊該按鈕,我需要一個表視圖酥料餅的視圖裏面顯示的只是按鈕i placed.my問題以上是我酥料餅的視圖的開始位置是在我的視圖控制器的頂部。我需要一個小的彈出視圖就在該按鈕上方。我使用橫向模式。 。座標計算酥料餅的觀點

UIViewController *popoverContent=[[UIViewController alloc]init]; 
UIView* popoverView = [[UIView alloc]initWithFrame:CGRectMake(265, 100, 400 , 800)]; 
popoverView.backgroundColor = [UIColor clearColor]; 
// popoverView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mmf.png"]]; 


UITableView *table = [[UITableView alloc]initWithFrame:CGRectMake(0, 0,400,800) style:UITableViewStylePlain]; 
table.backgroundColor=[UIColor colorWithRed:(107.0/255.0) green: (164.0/255) blue:(183.0/255) alpha:1]; 
[table setDataSource:self]; 
[table setDelegate:self]; 
[table setRowHeight:80]; 
[popoverView addSubview:table]; 

popoverContent.view = popoverView; 
// popoverContent.contentSizeForViewInPopover = 
//CGSizeMake(250, 665); 


self.popoverController = [[UIPopoverController alloc] 
          initWithContentViewController:popoverContent]; 
[self.popoverController presentPopoverFromRect:popoverView.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
[self.popoverController presentPopoverFromRect:CGRectMake(265,680,400,800) 
             inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 

我嘗試了許多座標值,但其起始位置不是我想要的位置。

+0

發佈您的代碼。 – Balu 2013-03-14 10:05:44

回答

2

編輯

UIViewController *popoverContent=[[UIViewController alloc]init]; 
    UIView* popoverView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 400 , 400)]; 
    popoverView.backgroundColor = [UIColor clearColor]; 
    // popoverView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mmf.png"]]; 


    UITableView *table = [[UITableView alloc]initWithFrame:CGRectMake(0, 0,400,400) style:UITableViewStylePlain]; 
    table.backgroundColor=[UIColor colorWithRed:(107.0/255.0) green: (164.0/255) blue:(183.0/255) alpha:1]; 
    [table setRowHeight:80]; 
    [popoverView addSubview:table]; 

    popoverContent.view = popoverView; 
    popoverContent.contentSizeForViewInPopover = CGSizeMake(popoverView.frame.size.width, popoverView.frame.size.width); 

    UIPopoverController *popoverController = [[UIPopoverController alloc] 
               initWithContentViewController:popoverContent]; 
    [popoverController presentPopoverFromRect:btnLogin.frame 
             inView:btnLogin.superview permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 

注意 你只需確保frame of your button,並確保從view that contains button

+0

我收到一個錯誤「屬性btnsection沒有找到對象的類型uitableview單元格」 – haritha 2013-03-14 10:29:26

+0

請看更新btnLogin我的按鈕,你可以把你的按鈕在這裏 – 2013-03-14 10:43:13

+0

非常感謝..我得到了我想要的輸出:) – haritha 2013-03-14 11:01:16

0

這是不是一個好主意,突出顯示彈出藍色。用戶從UI控件呈現時更容易。

但是嘗試了UIView &您的TableView的viewDidLoad中設置contentPopOverSize。

[self setContentSizeForViewInPopover:CGSizeMake(width, height)]; 

您在CGRectMake中給出的框架應該相對於您的按鈕。

希望它有幫助。

+0

是否可以建議一個合適的座標? – haritha 2013-03-14 10:25:50

+0

否您可以在您用於popover的viewvontroller中建議彈出窗口的大小.X&y可以在UIPopOverViewController方法的presentPopoverFromRect的CGRECTMAKE中給出。 – 2013-03-14 10:29:52

+0

無論我給的價值是什麼,視圖都是從iPad的頂端開始的。只有視圖底部的位置在變化。我不知道爲什麼。 – haritha 2013-03-14 10:35:02

1

提出這一個it'l幫你試試,

UIViewController* popoverContent = [[UIViewController alloc] init]; 
     UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 400, 320, 260)]; 
     popoverView.backgroundColor = [UIColor whiteColor]; 

     UITableView *table = [[UITableView alloc]initWithFrame:CGRectMake(0, 0,320,260) style:UITableViewStylePlain]; 
    table.backgroundColor=[UIColor colorWithRed:(107.0/255.0) green: (164.0/255) blue:(183.0/255) alpha:1]; 
    [table setDataSource:self]; 
    [table setDelegate:self]; 
    [table setRowHeight:80]; 
    [popoverView addSubview:table]; 
     popoverContent.view = popoverView; 
     popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent]; 
     popoverRect = CGRectMake(100, 200, 1,30); 

     // in the above line change the position of the popover controller 

     popoverController.popoverContentSize = CGSizeMake(320, 260); 
     [popoverController 
     presentPopoverFromRect:popoverRect 
     inView:self.view 
     permittedArrowDirections:UIPopoverArrowDirectionUp 
     animated:YES]; 
0

presentPopoverFromRect是yourBtn的框計算WRT視圖 - 控制的觀點,如果你的按鈕是任何其它視圖內這一觀點,那麼它的座標將被計算WRT的矩形,其中酥料餅將指向

[self.popoverController presentPopoverFromRect:yourBtn.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

只要記住並且定位不正確。