日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ipad流水布局及其旋转界面view间隔布局调整

發布時間:2025/3/17 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ipad流水布局及其旋转界面view间隔布局调整 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

控制器嵌套關系如下,ITGDealViewController的view是UI界面中Dock其中點擊按鈕彈出的一個子view

rootViewController == mianViewController --> UINavigationController -->ITGDealViewController -->UICollectionViewFlowLayout

?

*****************************************************************

?

?

ITGAppDelegate.m文件------------------------------中的設置根控制器

-----------------------------------------------------------------

//設置根控制器

self.window.rootViewController = [[ITGMainViewController alloc]init];

?

?

?

ITGMainViewController.m文件

-----------------------------------------------------------------

//創建ITGDealViewController

ITGDealViewController *vdeal = [[ITGDealViewController alloc]init];

[self addOneChildVc:deal];

?

-(void)addOneChildVc:(UIViewController *)vc

{

? ? //導航控制器UINavigationController中有其他四個子控制器

? ? UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc];

? ? //主控制器ITGMainViewController中有子控制器:導航控制器UINavigationController

? ? [self addChildViewController:nav];

?? ?

?? ?

?

ITGDealViewController.m文件

-----------------------------------------------------------------

?? ?

//重寫init方法

- (id)init

{

? ? //流水布局

? ? UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];

? ? //每個格子大小

? ? layout.itemSize = CGSizeMake(250, 250);

? ? //設置每一行之間的距離

? ? layout.minimumLineSpacing = 20;

? ? //調用父類的構造方法

? ? if ([super initWithCollectionViewLayout:layout]) {

? ? }

}

?? ?

?

//ipad屏幕旋轉監聽方法:子控制器和根控制器有關聯才能知道屏幕旋轉了

? ? //旋轉后調用的方法

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

{

? ? //返回的是父類UICollectionViewLayout,子類是UICollectionViewFlowLayout,把返回的父類要強轉成我們要用上面的子類

? ? //取出布局

? ? UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;

?? ?

? ? //設置collectionView內邊距 布局

? ? CGFloat paddingY =20;

? ? CGFloat paddingX = 40;

? ? layout.sectionInset = UIEdgeInsetsMake(paddingY, paddingX, paddingY, paddingX);

? ? //判斷橫豎屏

? ? if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation))//在旋轉后當前橫屏

? ? {

? ? ? ? paddingX = (self.view.bounds.size.width - 3*layout.itemSize.width)/4;

? ? }else{

? ? ? ? paddingX = (self.view.bounds.size.width - 2*layout.itemSize.width)/3;

? ? }

? ? //添加動畫

? ? [UIView animateWithDuration:0.5 animations:^{

? ? ? ? //行之間

? ? ? ? layout.minimumLineSpacing = paddingY;

? ? }];

}

//即將旋轉調用的方法? 本例沒有有使用

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

{

?? ?

}

?

?? ?

//想一進界面就有這樣的效果,就在-(void)viewDidLoad或者- (void)viewDidAppear:(BOOL)animated調用設置界面布局效果的方法,具體調用哪個視情況而定

[self didRotateFromInterfaceOrientation:0];

//如本例適合調用的方法

- (void)viewDidAppear:(BOOL)animated

{

? ? [super viewDidAppear:animated];

? ? //調用設置界面布局效果的方法

? ? [self didRotateFromInterfaceOrientation:0];

}

?

?? ?

?? ?

?

轉載于:https://www.cnblogs.com/zuozeing/p/3563708.html

總結

以上是生活随笔為你收集整理的ipad流水布局及其旋转界面view间隔布局调整的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。