Iveは私が以前使用していたカスタムxibを作成しました。カスタムビューのインスタンスを作成し、サブビューとしてuiscrollviewに追加するだけです。アイブ氏は、私のビューコントローラSwift - カスタムXibビューをプログラムでサブビューとして追加
let cardView = CardView(coder: NSCoder())
cardView!.frame.size.width = 100
cardView!.frame.size.height = 100
scrollView.addSubview(cardView!)
ののviewDidLoadのFUNC中のコードブロックを使用してみましたが、私はこのエラー
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '*** -containsValueForKey: cannot be sent to an abstract object
of class NSCoder: Create a concrete instance!'
EDIT取得しています:これはCardViewに接続迅速ファイルのコードです を.xib
import UIKit
class CardView: UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var cornerView: UIView!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
NSBundle.mainBundle().loadNibNamed("CardView", owner: self, options: nil)
self.addSubview(view)
view.frame = self.bounds
cornerView.layer.cornerRadius = 3
cornerView.layer.masksToBounds = true
view.layer.shadowOffset = CGSizeMake(1, 5);
view.layer.shadowRadius = 2;
view.layer.shadowOpacity = 0.2;
view.layer.masksToBounds = false
}
}
の代わりに、私は単にしようとした自動レイアウトを使用して、これらの2行から手動でサブビューを追加試験を高さと幅を設定(また、単にヘッドアップ私はiOS開発の新機能)
cardView!.frame.size.width = 100
cardView!.frame.size.height = 100
あなたの質問には多くの混乱があります。 1)Iveは以前のストーリーボードで使用したカスタムxibを作成しました。カスタムxibをどのように作成したのですか.xib拡張子を持つ別個のファイルを意味します。つまり、xibのコンテンツをどこかで使用しているコードが表示されないということです。 2)あなたは自動レイアウト制約を使用していません3)コードフォームxibに何も初期化していません。私はポストを編集し、あなたがこの具体的な実装やあなたの目標と何かのグラフィックスを使用している完全なコードを投稿し、私は最良の方法を提案すると言うでしょう。 –
@MaheshAgrawala私はちょうど – XvKnightvX
のようなloadnibの行を変更するのを助けるポストの希望に編集しました。 'self.view = NSBundle.mainBundle()。loadNibNamed(" CardView "、所有者:nil、options:nil)[0] as! UIView'と一度だけ試してください –