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

來源:互聯網
上載者:User

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

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

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

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

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

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

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

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

在ios8以前,手動調用

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

 

應該可以選擇介面方向,關於介面方向和裝置方向,詳見一片楓葉大神的《旋轉螢幕筆記》

但是在My Code中調用之後沒反應,後來尋找資料發現在我的基類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);

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.