1
subView
をUIButton
に追加しました。次に、カスタマイズしたUIButton
のボタンサブクラスをStoryboard
から作成しましたが、subView
の境界が正しく設定されていませんでした。カスタマイズされたUIButtonのサブビューが適切な位置になかった
予想:私が代わりに得たもの
:私のUIButton
をカスタマイズして、非常にシンプルなの
コード:
import UIKit
@IBDesignable
class RoundShadowButton: UIButton {
var backLayer: UIView!
override func drawRect(rect: CGRect) {
setup()
}
func setup() {
backLayer = UIView()
//add the subView
backLayer?.bounds = bounds
backLayer!.layer.cornerRadius = 10.0
backLayer?.layer.masksToBounds = false
backLayer!.layer.borderColor = UIColor.redColor().colorWithAlphaComponent(0.3).CGColor
backLayer!.layer.borderWidth = 1.0
backLayer.clipsToBounds = false
addSubview(backLayer)
//add shadow to layer of UIButton
layer.shadowColor = UIColor.blackColor().CGColor
imageEdgeInsets = UIEdgeInsetsMake(9, 32, 9, 32)
layer.shadowOffset = CGSizeMake(0.0, 0.5)
layer.shadowRadius = 1.0
layer.shadowOpacity = 0.7
layer.masksToBounds = false
clipsToBounds = false
}
問題を解決するにはどうすればよいですか? 「でno:
ありがとうございました。私は 'func layoutSubviews()'をオーバーライドせず、 'backLayer.bounds = bounds'を' backLayer.frame = bounds'に変更しました。あなたの質問のために、私は 'drawRect'でセットアップを行います。なぜなら私はストーリーボードに表示された変更をしたいからです。 – luiyezheng