【iOS8対応】UIViewControllerの角を丸める処理のまとめ
開発環境
環境 | 情報 |
---|---|
Xcode | 6.0.1 (6A317) |
Swift | 1.0 |
iOS | 7.0 - |
Date | 2014/09/30 |
概要
iOS7までの方法で角を丸めて、iOS8で実行するとこんな感じになる。
iOS8対応の処理をするとこうなる。
※影が全体に回って目立たなくなっただけとも言う
実際の処理
RoundedCornerViewController.swift
実際の角を丸める処理はこんな感じ。
// ViewControllerの角を丸める func cornerRounding(radius: CGFloat) { // UINavigationControllerに対応 var vi = view if navigationController != nil { vi = navigationController!.view } // iOS7はこれだけでok vi.layer.cornerRadius = radius vi.layer.masksToBounds = true vi.superview?.backgroundColor = UIColor.clearColor() // iOS8の場合、以下の処理も必要 if let sv = vi.superview { sv.clipsToBounds = false sv.layer.shadowPath = nil } }
superviewへの処理が、少し追加になっただけ。さり気なくUINavigationControllerへの対応も追加してある。
参考資料
iphone - iOS: Why do I have white, rounded corners on my modal view? - Stack Overflow
http://stackoverflow.com/questions/12965560/ios-why-do-i-have-white-rounded-corners-on-my-modal-view
ソースコード
全体のソースコードはこちら。
See_Ku / RoundedCornerModalTips — Bitbucket
https://bitbucket.org/See_Ku/roundedcornermodaltips