2016-11-10 11 views
1

私は何時間も探していましたが、それはできないという古い回答です。UIbuttonsの縦横比を維持する背景画像

私は、バックグラウンドイメージをできるだけ大きく、アスペクト比を維持したいと思うボタンがあります。私が何をするにしても、背景のイメージはぼろぼろになり続けます。私はもう試した。

var bluecircle = #imageLiteral(resourceName: "BLUE.png") 

    monBreak.contentMode = UIViewContentMode.scaleAspectFit 
    monBreak.setBackgroundImage(bluecircle, for: UIControlState.normal) 

は、私は本当にImageViewのを作り、その上に目に見えないボタンを配置する必要がありますか?それは間違っているかもしれない多くの新しいことを歓迎するようです。

私は、これは、アスペクト比の権利を取得しますが、私は、レイアウトが固定値に、そのサイズを設定し、動的になりたいので、動作しません、プラスそれは中心にいない

@IBOutlet weak var monBreak: UIButton! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    var bluecircle = #imageLiteral(resourceName: "BLUE.png") 

    let theimagebehindmonBreak = UIImageView(image: bluecircle) 
    theimagebehindmonBreak.frame = CGRectFromString("{{0,0},{40,40}}") 
    monBreak.contentMode = UIViewContentMode.scaleAspectFit 
    monBreak.addSubview(theimagebehindmonBreak) 
    theimagebehindmonBreak.image=bluecircle 
    theimagebehindmonBreak.contentMode = UIViewContentMode.scaleAspectFit 

を試してみました。

私は疲れて、単純にそう

var dacontraints = NSLayoutConstraint(monBreak.constraints) 

のようにボタンの制約を適用する。しかし、この時点で私はエラーが「タイプのための初期化子を呼び出すことはできません取得まず 『NSLayoutConstraint』タイプの引数リストで「{[ NSLayoutconstraints]}」

これは私

答えて

0

を殺しているが、サブクラス化が収まるソリューションのように聞こえる。

サブクラスUIButt initにImageViewを追加し、フレームにサイズを設定し、contentModeを適切に設定します。

関連する問題