【发布时间】:2016-10-08 21:22:06
【问题描述】:
我得到一个“不能在属性初始化器中使用实例成员'外观';属性初始化器在'self'可用之前运行”。请不要建议从代码中删除外观,这是行不通的。我还添加了一个 self.appearence.kcirclebackround 并得到了错误。
这里是设置 kCircleHeightBackground cgfloat 的地方 `open class SCLAlertView: UIViewController {
public struct SCLAppearance {
let kDefaultShadowOpacity: CGFloat
let kCircleHeightBackground: CGFloat
let kCircleTopPosition: CGFloat
let kCircleBackgroundTopPosition: CGFloat
let kCircleHeight: CGFloat
let kCircleIconHeight: CGFloat
let kTitleTop:CGFloat
let kTitleHeight:CGFloat
let kWindowWidth: CGFloat
var kWindowHeight: CGFloat
var kTextHeight: CGFloat
let kTextFieldHeight: CGFloat
let kTextViewdHeight: CGFloat
let kButtonHeight: CGFloat
let contentViewColor: UIColor
let contentViewBorderColor: UIColor
let titleColor: UIColor
`
然后我在“appearance.kCircleHeightBackground”处收到错误
var appearance: SCLAppearance!
// UI Colour
var viewColor = UIColor()
// UI Options
open var iconTintColor: UIColor?
open var customSubview : UIView?
// Members declaration
var baseView = UIView()
var labelTitle = UILabel()
var viewText = UITextView()
var contentView = UIView()
// "I get an error here at appearance.kCircleHeightBackground"__________var circleBG = UIView(frame:CGRect(x:0, y:0, width: appearance.kCircleHeightBackground, height: appearance.kCircleHeightBackground))
var circleView = UIView()
var circleIconView : UIView?
var duration: TimeInterval!
var durationStatusTimer: Timer!
var durationTimer: Timer!
var dismissBlock : DismissBlock?
fileprivate var inputs = [UITextField]()
fileprivate var input = [UITextView]()
internal var buttons = [SCLButton]()
fileprivate var selfReference: SCLAlertView?
public init(appearance: SCLAppearance) {
self.appearance = appearance
super.init(nibName:nil, bundle:nil)
setup()
}
【问题讨论】: