資料ipad資料IOS資料02-_第1頁
資料ipad資料IOS資料02-_第2頁
資料ipad資料IOS資料02-_第3頁
資料ipad資料IOS資料02-_第4頁
資料ipad資料IOS資料02-_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、UIPopoverController,iOS學(xué)院 李明杰,簡介,什么是UIPopoverController 是iPad開發(fā)中常見的一種控制器(在iPhone上不允許使用) 跟其他控制器不一樣的是,它直接繼承自NSObject,并非繼承自UIViewController 它只占用部分屏幕空間來呈現(xiàn)信息,而且顯示在屏幕的最前面,使用步驟,要想顯示一個UIPopoverController,需要經(jīng)過下列步驟 設(shè)置內(nèi)容控制器 由于UIPopoverController直接繼承自NSObject,不具備可視化的能力 因此UIPopoverController上面的內(nèi)容必須由另外一個繼承自UIView

2、Controller的控制器來提供,這個控制器稱為“內(nèi)容控制器” 設(shè)置內(nèi)容的尺寸 顯示出來占據(jù)多少屏幕空間 設(shè)置顯示的位置 從哪個地方冒出來,設(shè)置內(nèi)容控制器,設(shè)置內(nèi)容控制器有3種方法 在初始化UIPopoverController的時候傳入一個內(nèi)容控制器 - (id)initWithContentViewController:(UIViewController *)viewController; property (nonatomic, retain) UIViewController *contentViewController; - (void)setContentViewControll

3、er:(UIViewController *)viewController animated:(BOOL)animated; 以上方法和屬性都是UIPopoverController的,設(shè)置內(nèi)容的尺寸,設(shè)置內(nèi)容的尺寸有2種方法 property (nonatomic) CGSize popoverContentSize; - (void)setPopoverContentSize:(CGSize)size animated:(BOOL)animated; 以上方法和屬性都是UIPopoverController的,設(shè)置顯示的位置,設(shè)置顯示的位置有2種方法 圍繞著一個UIBarButtonIte

4、m顯示(箭頭指定那個UIBarButtonItem) - (void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)item permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated; item :圍繞著哪個UIBarButtonItem顯示 arrowDirections :箭頭的方向 animated :是否通過動畫顯示出來,設(shè)置顯示的位置,圍繞著某一塊特定區(qū)域顯示(箭頭指定那塊特定區(qū)域) - (void)pres

5、entPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated; rect :指定箭頭所指區(qū)域的矩形框范圍(位置和尺寸) view :rect參數(shù)是以view的左上角為坐標原點(0,0) arrowDirections :箭頭的方向 animated :是否通過動畫顯示出來,rect和view參數(shù),rect,popover,view,rect.origin.x,rect.o

6、rigin.y,(0, 0),rect.size.width,rect.size.height,設(shè)置顯示的位置,如果想讓箭頭指向某一個UIView的做法有2種做法,比如指向一個button 方法1 popover presentPopoverFromRect:button.bounds inView:button permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES; 方法2 popover presentPopoverFromRect:button.frame inView:button.superview per

7、mittedArrowDirections:UIPopoverArrowDirectionDown animated:YES;,常見報錯,在popover的使用過程中,經(jīng)常會遇到這個錯誤 -UIPopoverController dealloc reached while popover is still visible. 錯誤的大體意思是:popover在仍舊可見的時候被銷毀了(調(diào)用了dealloc) 從錯誤可以得出的結(jié)論 當popover仍舊可見的時候,不準銷毀popover對象 在銷毀popover對象之前,一定先讓popover消失(不可見),通過內(nèi)容控制器設(shè)置內(nèi)容尺寸,內(nèi)容控制器可以

8、自行設(shè)置自己在popover中顯示的尺寸 在iOS 7之前 property (nonatomic,readwrite) CGSize contentSizeForViewInPopover; 從iOS 7開始 property (nonatomic) CGSize preferredContentSize; 以上屬性都是UIViewController的,常用屬性,代理對象 property (nonatomic, assign) id delegate; 是否可見 property (nonatomic, readonly, getter=isPopoverVisible) BOOL po

9、poverVisible; 箭頭方向 property (nonatomic, readonly) UIPopoverArrowDirection popoverArrowDirection; 關(guān)閉popover(讓popover消失) - (void)dismissPopoverAnimated:(BOOL)animated;,防止點擊UIPopoverController區(qū)域外消失,默認情況下 只要UIPopoverController顯示在屏幕上,UIPopoverController背后的所有控件默認是不能跟用戶進行正常交互的 點擊UIPopoverController區(qū)域外的控件,UIPopoverController默認會消失 要想點擊UIPopoverController區(qū)域外的控件時不讓UIPopoverController消失,解決辦法是設(shè)置passthroughViews屬性 property (nonatomic, copy) NSArray *passthroughViews; 這個屬性是設(shè)置當UIPopoverController顯示出來時,哪

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論