UIButton の image プロパティに問題があります。私のアセット カタログには、Any / Any size クラスのデフォルト イメージと、Regular / Regular クラスに固有のイメージが含まれています。Interface Builder で UIButton のイメージ プロパティを「img_facebook」に設定すると、iPad でイメージが正しくレンダリングされません (Regular/Regular の代わりに Any/Any サイズのイメージが選択されます)。しかし、「traitCollectionDidChange:」メソッド内で更新すると、画像は正しくレンダリングされます (添付のコード スニペットを参照)。
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection
{
[super traitCollectionDidChange:previousTraitCollection];
[_facebookButton setImage:[UIImage imageNamed:@"img_facebook"] forState:UIControlStateNormal];
}
IB が UIImage インスタンスを作成し、それを一度だけプロパティに割り当てているようです。それは理にかなっていますが、UIButton の代わりに UIImage で同じことを行うと、すべてが完全に正常に機能します。
誰かが同様の問題を経験しましたか? IBでそれを修正することは可能ですか、それともコードで画像を手動でリセットする必要がありますか?