私は自分のView ControllerにUIViewを持っています。そして、私はいくつかのラベルをプログラムで画面上に描きたい。だから私はそれをサブクラス化することができ、そのクラスではUIViewに考えました。UIviewの問題をサブクラス化する
マイコード:
import Foundation
import UIKit
class MainBottomView : UIView{
required init?(coder aDecoder: NSCoder) {
super.init(frame: UIScreen.main.bounds);
generateLabel(CGRect(x: 5, y: 363, width: 310, height: 62),tekst: "")
return;
}
func generateLabel(_ fr: CGRect,tekst: String){
let l = UILabel(frame: fr)
l.backgroundColor = UIColor(red: (21/255.0),green: (185/255.0),blue:(201/255.0),alpha:1)
l.textAlignment = NSTextAlignment.center
l.text = tekst
l.textColor = UIColor.white
l.font = UIFont(name: "HelveticaNeue", size: 23)
self.addSubview(l)
}
}
しかし、それは必要な初期化時にクラッシュしますか?行。なぜこれが起こっているのか分かりません。または、間違った方法でサブクラス化を使用しましたか?
ありがとうございました!
私はビューコントローラでビューを作成しました。私はそのビューにMainBottomViewクラスを与えました。ですから、私はinit()をinit(coder :)と置き換える必要がありますか? – da1lbi3
それは私が言ったことだと思いますか? 'fatalError'を取り出し、' generateLabel'にあなたの呼び出しを置きます(もちろん、 'super'を呼び出します)。 – matt
私はそれを少し違って実装しました、私はそれがこのように良いと思った(私の記事を参照)。しかし、それはまだ働いていません。 – da1lbi3