2016-11-10 1 views
0

ブラシ用UIButtonとズーム用UIButtonがあります。UIButton画像が変更された場合、ズーム画像は1:1に戻ります。

イメージを同じにしておくと、両方とも正常に動作します。 画像は、Interface Builderでのボタンに添付されている:私は「描く」ためのボタン画像を変更した場合

enter image description here

は、ズーム操作後、画像はありませんズームに戻ります。

drawButton.setImage(UIImage.init(named: "Brush.png"), for: UIControlState.normal) 

ズームに影響を与えずに画像を変更するにはどうすればいいですか - ズームモードで描画したいと考えています。

私はこのような何か試してみました:これはズームに影響を与えませんが、画像を変更しない

drawButton.imageView?.image = UIImage.init(named: "BrushYellow.png") 

を。アイデアを歓迎してください。

+1

私はバックグラウンドイメージを使用して、ボタンのイメージのアスペクト比を強制的に使用する傾向があります。それはあなたが何を指しているかのような厄介な問題をすべて防ぎます。 – Sethmr

+0

ええと、背景画像のみを使ってみましたが、同じ問題が発生します。私はUIControlStateの値を設定しなければならず、ズーミングがうまくいきません。私は、変化する背景色だけを使わなければならないかもしれません。 –

+0

@Sethmr、私はどこかに行っているかもしれません。デフォルトの画像がないボタンを設定し、パターンの画像を使って背景画像を設定すると、機能するかもしれません。ボタンのサイズに合わせてアスペクトを設定するにはどうすればいいですか。ありがとう! –

答えて

1

私は背景画像を使用し、アスペクト比をボタンの画像のアスペクト比と同じにする傾向があります。それはあなたが何を指しているかのような厄介な問題をすべて防ぎます。

写真の実際の面を見て、画像の縦横比でストーリーボードの拘束を設定します。プログラムで作成する場合は、比率でフレームを設定する必要があります。イメージを変更する場合は、

UIButton().setBackgroundImage(image: UIImage?, for: UIControlState) 

を使用してください。そうしないと、イメージが重なって表示されます。それを複数の制御状態に設定する必要がある場合は、これを行う必要はありません.Normal

制約を変更する必要がある場合は、コンセントを作成して乗数を変更することができます1:1から何に戻って戻ってもよい。 UIがそれ自身を更新しない場合、

+0

ありがとうございます。しかし、setBackgroundImage:for:UIControlStateを使用した場合、setImage :: Upを使っているのと同じような厄介な振る舞いをします。私はUIBackgroundColorについて考えているので、画像を追加することができますか? –

+0

制約事項。イメージを色として追加することは、それが価値があるよりもはるかに多くの作業であり、私は直面している問題を変更することはできません。 – Sethmr