iOS9~ のiPadでsizeClassをRegularに設定したのに反映されない
ipadではこのレイアウトを変更しよう とsizeClassを縦横Regularに指定した項目があるのですが、エミュレーター・実機共に反応してくれず、何故かany anyの設定が反映されてしまいます
iOS8.1のシミュレーター、iOS8.4の実機では正常にRegular Regularの設定が反映される事を確認しました。
xcodeのプロジェクトはこちらとなります
http://fushi.x0.com/php_system/20160117-stackoverflow-question/xibTest2.zip
xibで定義した二つのビュー(AaView と BView)があり
AaViewはViewController上から
class AaViewController : UIViewController{
var childView : AaView?
var bView : BView?
override func loadView() {
self.edgesForExtendedLayout = UIRectEdge.None;
if let view = UINib(nibName: "AaView", bundle: nil).instantiateWithOwner(self, options: nil).first as? AaView{
self.view = view;
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.childView = self.view as! AaView!
self.bView = BView(frame: (UIApplication.sharedApplication().keyWindow?.bounds)!)
UIApplication.sharedApplication().keyWindow?.addSubview(self.bView! )
}
}
の様に、定義し
BViewは
class BView: UIView {
@IBOutlet var contentView: UIView!
override init(frame: CGRect) { // for using CustomView in code
super.init(frame: frame)
self.commonInit()
}
required init?(coder aDecoder: NSCoder) { // for using CustomView in IB
super.init(coder: aDecoder)
self.commonInit()
}
private func commonInit( ) {
NSBundle.mainBundle().loadNibNamed("BView", owner: self, options: nil)
contentView.frame = self.bounds
self.addSubview(contentView)
}
}
の様に定義しました。
sizeClassがおかしい以外はAもBも表示されており、iphone 6Plus iOS 9.2では正常にanyのラベルのみ表示されます。(左上にB-any、右下にA-any)
ところが、ipad2 iOS9.0/ipad air2 iOS 9.2ではA-Regularは狙い通り表示されるのですが、BについてはB-anyが表示されてしまいます。レイアウトの指定方法をミスって位置がズレてしまっていますが・・。
これらのラベルはxCode上では
の様に定義されており、reg regは縦横共にRegularの時のみ表示
anyは縦横共にanyの時 ただしRegularの時は除く という指定です。
AaView、BView共に同じ指定方法です。
AaViewに関しては望み通りの表示がされているのですが、BViewについて何故かSizeClassが反映されません。
パラメーター、設定不足等ありましたら教えて頂けますでしょうか
xcodeのバージョンは7.2となります
よろしくお願いします。