UIPopoverController

想要顯示一個UIPopoverController,需要經過下列步驟

 1. 設置內容控制器

    由於UIPopoverController直接繼承自NSObject,不具備可視化的能力,因此UIPopoverController上面的內容必須由另外一個繼承自UIViewController的控制器來提供,這個控制器稱之爲內容控制器

 2. 設置內容的尺寸

    顯示出來的佔據多少屏幕的空間

 3. 設置顯示的位置

    從哪裏冒出來的


@interface xxx ()


@property (nonatomic,strong)UIPopoverController *pop;


@end


一.

    UIPopoverController *pop = [[UIPopoverControlleralloc]initWithContentViewController:[[ViewControlleralloc]init]];

    self.pop = pop;// 這個非常重要, 不寫這個, 彈框不會出來(之前會直接奔潰).

// 原因是在使用它的時候, 就被銷燬了(系統調用了dealloc)

    

    pop.popoverContentSize =CGSizeMake(100,200);  // 這個尺寸一般在內容控制器自己的內部設置


    pop.backgroundColor = [UIColorwhiteColor];   // 不設置他的背景色, popover消失的時候會有黑色的背景


    

    [pop presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItempermittedArrowDirections:UIPopoverArrowDirectionAnyanimated:YES];


.

    UIPopoverController *pop = [[UIPopoverControlleralloc] initWithContentViewController:[[ViewControlleralloc] init]];

    self.pop = pop;

    

    pop.backgroundColor = [UIColorwhiteColor];

    

    // popover 指向 self.view11, 他的位置在self.view11.bounds(這個位置是基於self.view11的左上角,可以隨便設置self.view11.bounds來測試彈框)

    [pop presentPopoverFromRect:self.view11.boundsinView:self.view11permittedArrowDirections:UIPopoverArrowDirectionUpanimated:YES];


三.  過濾控件 -就是點擊這個控件之後, popover不會消失

pop.passthroughViews =@[self.view112];

UIPopoverController彈出來的時候, 點擊放到這個數組中的控件或者UI不會影響UIPopoverController, 他們就可以分開進行交互了, 不會相互影響


四. 屏幕旋轉和鍵盤不能落下的原因(和設置的類型有關) 後面再補充 ...


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章