- 投稿日:2020-05-29T19:28:34+09:00
XcodeGenを使ってUI Testing Bundle (UIテスト用ターゲット) を追加する
Product Typeに
bundle.ui-testing
を指定するとUIテスト用ターゲットを追加できます。
https://github.com/yonaskolb/XcodeGen/blob/master/Docs/ProjectSpec.md#product-typeproject.ymlでUIテスト用ターゲットの定義と、メインのターゲットでのtestTargetの定義をすれば追加できます。
project.ymltargets: ExampleApp: type: application ... scheme: testTargets: - ExampleAppUITests ExampleAppUITests: type: bundle.ui-testing platform: iOS scheme: {} sources: ExampleAppUITests dependencies: - target: ExampleApp settings: INFOPLIST_FILE: ExampleAppUITests/Info.plistちなみにいきなり xcodegen コマンドで生成しても良いですが、テストクラス以外にInfo.plistが必要になります。
XcodeでUIテスト用ターゲットを通常通り作ってからXcodeGenで管理するようにしても良いと思います。
Product > Test
かCmd-U
して、テストが実行されればOKです。
- 投稿日:2020-05-29T17:11:40+09:00
実機とシミュレータでフォントサイズが違う?UITableViewCellのカスタムビューのフォントサイズをポイント固定で指定してはいけない
実機とシミュレータのフォントサイズが違う?
UITableViewに配置するカスタムTableViewCellをつくったときの話。
実機テストのとき 「カスタムTableViewCellのフォントサイズが小さい」 という現象がありました。調べた結果、UILabelのFont設定をポイント指定していたことが原因だったのですが、そこに至るまでに時間を吸われたので、おなじ沼にハマらないように
シミュレータでの見え方
上:標準のUITableViewCell
下:カスタムUITableViewCell実機での見え方
上:標準のUITableViewCell
下:カスタムUITableViewCellフォントサイズが変わる
標準のUITableViewCellに注目してみると、
実機とシミュレータでフォントサイズが変わっていることがわかりました。具体的には、シミュレータでは
.SFUI-Regular 17.00pt
、実機のときは.SFUIDiplay-Semibold 23.00pt
となっていました。UILabelのFontの設定をポイント固定にしてはいけない
UILabelのFontを
System 18.0
に設定していました。この設定をBody
に変更することで、実行時の適切なFontに変更されることがわかりました。Text StyleからBodyを選択する
Fontが追従しないNGパターン
Fontが適切に変更されるOKパターン
- 投稿日:2020-05-29T16:18:06+09:00
Objective-Cで三項演算子のYESの場合を省略する
背景
案件のコード見てたらすごく簡潔に書かれた三項演算子があった!
まさかこんな書き方ができるとは知らなかったので、メモしておきます。コード
NSDictionary *dic = @{@"a": @"AAA", @"b": @"BBB"}; NSString *str = dic[@"b"] ? : @""; NSLOG(@"str: %@", str); // str: BBB str = dic[@"c"] ? : @""; NSLOG(@"str: %@", str); // str:Swift だったら...
Swiftならデフォルト値入れるだけで?♀️
Swift便利だな〜let dic = ["a": "AAA", "b": "BBB"] var str = dic["b"] ?? "" // str : BBB print("str : \(str)") str = dic["c"] ?? "" print("str : \(str)") // str :まとめ
Objective-Cでは三項演算子の第2項は省略できる?
Swiftはデフォルト値入れるだけで、nilの場合の値が決めれる?参考