国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS橫豎屏切換的一些坑(持續更新)

2019-11-14 19:34:33
字體:
來源:轉載
供稿:網友

  最近在做視頻類的App,遇到視頻滾動播放的坑,緊接著就是橫豎屏問題。之前太過天真不想做橫豎屏配置。只是想旋轉視頻View,但是分享什么的包括AlertView還是豎屏樣式,項目著急上線(1周提交一次也是夠了。。。人家審核都煩了估計)也就一直沒改。昨天開始改才發現是一個深坑!

  因為首頁是滾動播放,不想做橫屏適配,坐標判斷什么的還要改來改去,看了下目前主流App,搜狐做的貌似是最好的。具體效果如圖

(傻傻的我截圖結了半天才截到,我竟然不知道相機有一個功能叫做慢動作)

  他們橫屏轉動的時候后面的tableView不動的,當初就是看了一眼就天真的以為只是轉動個view,其實還是豎屏。。。但是

  緊接著就是網絡判斷啥的,忽然才發現我根本就拉不出來這個面板啊 = =!只能豎著拉有木有

拉出來之后直接豎屏了有木有!!!

所以想到了他們應該是改變界面方向。然后就想,后面tableview不動,那我就手動改界面方向然后轉視頻View唄。

在ios8以前,手動調用

UIapplication *application=[UIApplication sharedApplication];[application setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];

 

應該可以選擇界面方向,關于界面方向和設備方向,詳見一片楓葉大神的《屏幕旋轉筆記》

但是在我的代碼中調用之后沒反應,后來查找資料發現在我的基類Viewcontroller里

- (BOOL)shouldAutorotate{   return YES;}

 好吧,在顯示視頻窗那里返回NO

- (BOOL)shouldAutorotate{    return NO;}

 發現statusbar轉過去了,視圖什么的都沒動,這時間上拉下拉面板什么的也都對了,彈出的Alertview 方向也正確

就連鍵盤方向都對。好啦,問題貌似解決了。我視頻全屏的時候至于要設置statusbar的方向,然后自己轉下視頻窗體就OK了。

然后我就開開心心睡覺去了。

   第二天。。按著這個思路改了下,發現沒什么問題,分享啥的方向也對,只需要控制視圖大小和旋轉就好了。似乎到這里也就結束了,其實很簡單嘛。。。

   但是,忽然間想到iOS8出來以后貌似UIScreen的bounds會跟著界面方向轉動,bounds改變了會不會又影響,立馬用模擬器跑了一遍,果然有問題

   寬高貌似反了,iOS8果然有坑!幸好記得有這么個情況,詳見為毛iOS8下UIScreen的bonuns改變了

原來在iOS8下面

UIScreen is now interface oriented:

  • [UIScreen bounds] now interface-oriented
  • [UIScreen applicationFrame] now interface-oriented
  • Status bar frame notifications are interface-oriented
  • Keyboard frame notifications are interface-oriented         

  哪我判斷下就好了,于是

CGFloat max = MAX(SCREEN_HEIGHT, SCREEN_WIDTH);CGFloat min = MIN(SCREEN_HEIGHT, SCREEN_WIDTH); _player.view.frame = CGRectMake(0, 0, min, max);

 再次運行,好了,全屏可以了。恩,好像所有坑都填完了,表現不錯,今天中午給自己加個雞腿

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹阳市| 全南县| 彭阳县| 阿坝| 陇南市| 海门市| 余江县| 长阳| 邢台县| 三原县| 乡城县| 称多县| 乌拉特后旗| 新竹县| 舒城县| 商城县| 隆子县| 盐津县| 株洲市| 临朐县| 肃宁县| 祁阳县| 宿州市| 瑞安市| 乌兰察布市| 大姚县| 开化县| 老河口市| 南澳县| 凤山县| 河北省| 诸城市| 蓬溪县| 内江市| 双桥区| 应城市| 芮城县| 东乡县| 垫江县| 都昌县| 祁阳县|