Xcodeでのコードによる画像の表示
Xcodeであまりストーリーボードを使わずにコードだけで画像を表示させようとしています。
シュミレーターで画像が表示されません。
コードだけで表示させるには何が足りないのでしょうか?
また、何が問題か自分で確認する方法はありますか?
発生している問題・エラーメッセージ
エラーメッセージはありません。問題は上記の通りです。
該当のソースコード
Swift
1class ViewController2: UIViewController { 2 private func func1() { 3 let UIView1: UIView = self.view 4 let image1: UIImage = UIImage(named:"cross")! 5 let imageView1 = UIImageView(image:image1) 6 let screenWidth:CGFloat = view.frame.size.width 7 let screenHeight:CGFloat = view.frame.size.height 8 let imgWidth:CGFloat = image1.size.width 9 let imgHeight:CGFloat = image1.size.height 10 let scale:CGFloat = screenWidth / imgWidth 11 let rect:CGRect = CGRect(x:0, y:0, width:imgWidth*scale, height:imgHeight*scale) 12 imageView1.frame = rect 13 imageView1.center = CGPoint(x:screenWidth/2, y:screenHeight/2) 14 self.view.addSubview(imageView1) 15 self.view.bringSubviewToFront(imageView1) 16 } 17 18 override func viewDidLoad() { 19 super.viewDidLoad() 20 func1() 21 } 22}
試したこと
http://kyo-asu-aozora.seesaa.net/article/257890808.html
https://i-app-tec.com/ios/uiimageview.html
https://majintools.com/2018/10/11/uiimageview/
などを参考に十数通りのコードを試しました。
動作環境
Xcode ver 10.0
補足情報
上記のコードはこのサイトhttps://i-app-tec.com/ios/uiimageview.htmlを参考にしました。
アプリはViewController2が最初に表示されます。
Custom class はClassをViewController2にしては未指定、inherit Module From Targetにはチェックがついています。
let UIView1: UIView = self.viewの行はself.viewはUIViewなんだと一人で納得するため。
self.view.bringSubviewToFront(imageView1)の行はダメもとで最前列に持ってくるため。
あっても無くても画像が表示されませんでした。
Assets.xcassetsにcrossという名前で画像を入れています。
追記
色々試した結果、根拠は皆無ですが、プロジェクト名によるものだと思います。削除しても同じプロジェクト名だと、「Unknown class xxxxx in Interface Builder file.」と出ます。
画像の表示されない方のプロジェクトは、 Report navigatorのBuildの項目の
Build targetの最初にCreateBuildDirectory から始まるログが2つありました。
追記2(2020 5/12)
旧プロジェクトの削除が不十分なため起こったバグかと思っていましたが、どうやら違うようです。
削除の不十分さが問題とならないように、ゲストユーザーでプロジェクトを作り直しました。
その結果、プロジェクト名「パールハーバー」では画像は表示されず、プロジェクト名「ハールハーハー」では問題なく表示されました。濁点、半濁点がMoudleに表示される際、「_」に変換されるのが原因に関与していると思います。
ちなみにプロジェクト名「パールハーバー」だとMoudleには「ハ_ールハーハ_ー」ログには「パールハーバー」と表示され、強制的にMoudleを「パールハーバー」にするとログには一部、「ハ_ールハーハ_ー」と表示されます。
何故、濁点や半濁点を使うと画像表示に支障をきたすのかは不明なままです。