私はXCode 6.1でプログラム的にUIImageViewを設定しようとしています:
@IBOutlet weak var bgImage: UIImageView!
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
しかし、XcodeはbgImage = UIImageView(image: image)
Image "afternoon"
は「期待される宣言」と言っています、そして私の理解するところではPNGはXCode 6.1の拡張を必要としません。
またbgImage.image = UIImage(named: "afternoon")
だけを試してみましたが、それでもなお:
UPDATE
UIImageView
を更新するコードをviewDidLoad
関数に追加しましたが、UIImageView
はまだイメージを表示していません(これは、afternoon.pngとしてベースディレクトリに存在します)。
@IBOutlet weak var bgImage: UIImageView!
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var timeLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
updateTime()
var timer = NSTimer()
let aSelector : Selector = "updateTime"
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: aSelector, userInfo: nil, repeats: true)
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
}
BgImageを割り当ててIBOutletとしてリンクしているので、それをUIImageViewとして初期化する必要はありません。代わりに、imageプロパティをbgImage.image = UIImage(named: "afternoon")
のように設定するだけです。このコードを実行した後、アウトレットを使用してすでに割り当てられているので、画像は正常に見えました。
ただし、それがアウトレットではなく、ストーリーボード/ xibファイルのUIImageViewオブジェクトにすでに接続されていない場合は、次のようになります。
class ViewController: UIViewController {
var bgImage: UIImageView?
override func viewDidLoad() {
super.viewDidLoad()
var image: UIImage = UIImage(named: "afternoon")!
bgImage = UIImageView(image: image)
bgImage!.frame = CGRectMake(0,0,100,200)
self.view.addSubview(bgImage!)
}
}
これでうまくいきました(プログラムでUIImageViewを作成する):
var imageViewObject :UIImageView
imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600))
imageViewObject.image = UIImage(named:"afternoon")
self.view.addSubview(imageViewObject)
self.view.sendSubviewToBack(imageViewObject)
これはどう;
myImageView.image=UIImage(named: "image_1")
ここで、image_1はアセットフォルダー内のimage_1と同じですpng。
スライドを表示するためにスイッチケースを使っているので、これは私のために働きました。
このコードは間違った場所にあります。
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
あなたはそれを関数の中に置かなければなりません。 viewDidLoad
関数内に移動することをお勧めします。
一般に、関数の内側ではないクラス内に追加できる唯一のコードは、次のような変数宣言です。
@IBOutlet weak var bgImage: UIImageView!
あなたがあなたの質問で示した方法でそれをやりたいのであれば、これはインラインでそれを行う方法です。
class YourClass: UIViewController{
@IBOutlet weak var tableView: UITableView!
//other IBOutlets
//THIS is how you declare a UIImageView inline
let placeholderImage : UIImageView = {
let placeholderImage = UIImageView(image: UIImage(named: "nophoto"))
placeholderImage.contentMode = .scaleAspectFill
return placeholderImage
}()
var someVariable: String!
var someOtherVariable: Int!
func someMethod(){
//method code
}
//and so on
}
Swiftのシンタックスではこれは私のために働きました:
let leftImageView = UIImageView()
leftImageView.image = UIImage(named: "email")
let leftView = UIView()
leftView.addSubview(leftImageView)
leftView.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
leftImageView.frame = CGRect(x: 10, y: 10, width: 20, height: 20)
userNameTextField.leftViewMode = .always
userNameTextField.leftView = leftView
Swift 4では、画像がnilとして返された場合。
右側の画像をクリックします(公益事業) - >会員資格の確認