iPadだとセルの表示がずれる

UITableViewに追加したカスタムスタイルセルのコンテンツ左右の余白が標準スタイルのそれよりも若干狭くて表示がずれるという現象を何とかしたお話です。

標準スタイルで構成

標準スタイルのセルを3つ追加してみました。

img20160315_1-1

これを実行するとiPhone 6、iPhone 6 Plus、iPadではこうなります。

img20160315_1-2 img20160315_1-3 img20160315_1-4

標準スタイルとカスタムスタイルの混合

さて、2行目のセルをカスタムスタイルに変更してラベルとスイッチを適当に置いてみます。

img20160315_2-1

Auto Layoutのマージン制約はXcodeのお勧めをそのまま設定します。

img20160315_2-2 img20160315_2-3

これを実行するとiPhone 6、iPhone 6 Plus、iPadではこうなります。

img20160315_2-4 img20160315_2-5 img20160315_2-6

iPhone 6 PlusとiPadでは、なぜか2行目の左右余白が少ないため、Cell 2と書かれたラベルが左に、スイッチが右に若干ずれてしまっています。iPhone 6とiPhone  6 PlusやiPadで異なる余白のシステム設定値が、カスタムセルの方にだけ正しく継承されていないようです。

カスタムスタイルの余白修正

ビューのプロパティをいじって継承されるように修正してみます。

大事なところは、セルの親ビューをたどってPreserve Superview Marginsにチェックを入れて、さらにラベルとスイッチのレイアウト制約にある親ビュー側のアイテムのRelative to marginをオンにすることです。

img20160315_3-1 img20160315_3-2 img20160315_3-3 img20160315_3-4 img20160315_3-5

これを実行するとiPhone 6、iPhone 6 Plus、iPadではこうなります。

img20160315_3-6 img20160315_3-7 img20160315_3-8

iPhone 6 Plus、iPadでの表示のずれがなくなりました。相変わらずAuto Layoutは黒魔術です。

最初のUIApplicationDidBecomeActiveNotificationが来ない

ビューコントローラで、

- (void)viewDidLoad {
    [super viewDidLoad];
    NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
    [notificationCenter addObserver:self selector:@selector(applicationDidBecomeActive:)
        name:UIApplicationDidBecomeActiveNotification object:nil];
}

- (void)applicationDidBecomeActive:(NSNotification *)notification {
    NSLog(@"Hello!");
}

なんて書いても、iOS 8とは異なりiOS 9では最初の画面表示の際にビューコントローラの applicationDidBecomeActive メソッドは呼び出されないようです。デバッグコンソールに Hello! は表示されないです。その後、バックグラウンドから復帰するときにはきちんと呼び出されますけども。

“最初のUIApplicationDidBecomeActiveNotificationが来ない” の続きを読む

イメージビューを拡大縮小表示するサンプル

お久しぶりです。

表題の通りですが、Swiftの習作としてUIScrollView上のUIImageViewを拡大縮小表示するサンプルアプリを書いてみました。ソースコードは GitHub に置いてあります。

Swiftの更新ペースに自分の学習ペースが全然ついて行けていない…

“イメージビューを拡大縮小表示するサンプル” の続きを読む

PLAY OPC 1.4.2387が公開されました。

拙作 PLAY OPC 1.4.2387 が公開されました。

PLAY OPC

インターバルタイマー撮影できるようになったので、メディア残量とかバッテリー残量が尽きるまで微速度撮影とかできるんではないかと思います。(ちなみに、撮影枚数最大&時間間隔最長の設定でテストなんかしていないのは秘密です)

さらにさらにPLAY OPCの新バージョン

インターバルタイマー撮影機能が完成したので、iTunes Connectの審査へ提出しました。

PLAY OPC 1.4.2387

細かい不具合とか改良した方が良い部分とかたくさん残っているけど、やろうと思っていた大きい機能は概ねほぼ全部実装できたし、半年続けるとさすがにそろそろ飽きてきた感じがいたします。

新しい写真体験をサポートするためのアプリとかは、ようやくここから先のことかも知れません…。おっとそういえば、総本山のOPC Hack & Make Projectでコンテンストの作品を募集しているのを忘れておりました。果たして、新バージョンのApp Storeリリースは応募の締め切りに間に合うのか。(間に合わなくてもいいのかも知れないけど)

PLAY OPC 1.3.2260が公開されました。

タイトルの通りですが、拙作 PLAY OPC 1.3.2260 が公開されました。

表示される文言が日本語に対応したので扱いやすくなったんではないかな、と思っております。インチキ英語も依然サポートされておりますけれども。

PLAY OPC

どうにかこうにかオートブラケット撮影できるようになったので、リファクタリングしてさらにインターバル撮影に挑戦してみたいところです。