2017-09-30 6 views
1

私はSuperviewと同じ形にしたいボタンがあるカスタムビューを作成しようとしています。だから私は角を丸めたビューを作成しました。ビューの一番下にボタンがあり、スーパービューと同じポイントでコーナーが切り取られています。未解決のビューを外す

Idea

私はこの画像は私が何を意味するかのアイデアを与える願っています。 ボタンは、スーパービューと同じ形状にする必要がある属性です。それが助けになるならば、ここでもコード。

let button: UIButton = { 
    let button = UIButton() 
    button.setTitle("Buy", for: .normal) 
    button.titleLabel?.font = UIFont.systemFont(ofSize: 22) 
    //button.setTitleColor(UIColor.blue, for: .normal) 
    button.setTitleColor(UIColor.lightGray, for: .highlighted) 
    button.backgroundColor = .gray 
    button.clipsToBounds = true 
    return button 
}() 
func show(){ 

    self.addSubview(background) 
    self.addSubview(overview) 
    background.frame = self.frame 
    background.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(close))) 
    overview.frame = CGRect(x: 40, y: 40, width: self.frame.width-80, height: self.frame.height-80) 
    let size = overview.frame 


    overview.addSubview(button) 
    let imageHeight = size.height/3 


    button.frame = CGRect(x: 0, y: size.height-38, width: size.width, height: 38) 

    UIView.animate(withDuration: 0.5) { 
     self.background.alpha = 1 
     self.overview.alpha = 1 
    } 
} 

答えて

1

スーパーに「clipsToBounds」プロパティを追加します(私は追い詰め白地ビューは概要プロパティであると思います)好きこれはそのサブビューを追い詰めビューで表示されるようになり、

overview.clipsToBounds = true 

に従います。

2

ボタンを含むビューにclipsToBounds = trueを設定してみてください。それはボタンをクリップする必要があります。

下部の角で丸められているが上端では丸められていないボタンのマスクを作成しなければならない場合があります。 (UIBezierPathメソッドinit(roundedRect:byRoundingCorners:cornerRadii:)を使用して、下隅を丸めたベジェパスを作成し、それをCAShapeLayerのパスとしてインストールし、ボタンのマスクレイヤとしてTHYをインストールしてください)