質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

5135閲覧

【swift】UIButtonに画像をセットしたけれど、うまく表示されません。

mk_

総合スコア18

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/10/25 05:53

編集2016/10/25 11:49

ビューに配置したボタンに、
イメージ説明
この画像をセットしたのですが、実際にプログラムを動かしたところ、
イメージ説明
このようになってしまい、うまく表示されません。
なぜこうなってしまうのか、心当たりとしてはこの下にあるviewに透過度を指定したからその影響を受けているのかと考えたのですが、透過度の指定をやめても変わらず・・・

コードの影響以外に、ボタンに画像をセットする過程でこういった状態になってしまう要因はあるのでしょうか?

自分で書いたコードが原因でしたら自分で調べますが、それ以外に、例えば「サイズが大きすぎるとこうなることがある」といったようなコード以外の一般的な要因があれば教えて欲しいです。

追記:みなさんアドバイスありがとうございます、ここまで教えていただいたのに直らないということは、おそらくは上記の他のUI(viewなど)の透過度設定の影響の可能性がやはり高いと思うので、もう一度見直してみようと思います。
けれど、この青色はおそらくUIButtonのテキストの基本色と同じだと思うので、UIButtonの持つ何かしらの要素が原因に関係しているのかなぁ・・・・と、素人の考えですが思いついたので、そちらも検証してみようかと思います。

追記2:透過度の設定をやめてみたり、別のボタンに画像を設定してみたり、pngをjpgに変えてみたり、ボタンのテキストカラーを変えてみたりしてみたのですが、変わりませんでした・・・画像を変更しても、同じように青くなります。ただ、形だけは元の画像データと同じ形になっているようです。
全く新しいViewにボタンを作り画像を設定してみましたが、今までと同じように青くなりました。

変更した後のコードは以下の通りです。

swift

1camera = UIButton(type: UIButtonType.system) 2 camera.frame = CGRect(x: width/2+width/18, y: height/1.5, width: width/3, height: height/7); 3 let cimage:UIImage = UIImage(named:"button")! 4 camera.setImage(cimage, for: .normal) 5 camera.addTarget(self, action: #selector(SecondViewController.cameraOn), for: .touchUpInside) 6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasahikoHirata

2016/10/25 06:21

Storyboardを使いますか?それともコードで指定しますか?
mk_

2016/10/25 06:22

コードで指定します。ボタンもコードで生成したもので、これを表示させるビュー自体もストーリーボードからではなくコードで作ったものなので、ストーリーボードでは操作できないものになっています。
fuzzball

2016/10/25 07:02 編集

この青い色に心当たりはありますか?また、UIButtonではなく、UIImageViewにしても同じでしょうか?
mk_

2016/10/25 08:15

この色に心当たりはないですね・・・どこかで指定していることもなく、もともとのピンクのボタンの補色というわけでもないようです。ただ、このボタンの隣に作ってあるもう一つのボタンのテキストカラーが同じような青色になっているので、それが関係しているのかもしれないですが・・・とくにこっちのボタンのテキストカラーも指定したわけではなく、作ったらこの色になっていた、という感じです。imageViewでもだめでした。
mk_

2016/10/25 08:45

すみません、imageViewで試したところ、正常に表示されました。
MasahikoHirata

2016/10/25 14:24

解決済みにされることを望みます。
guest

回答3

0

自己解決

UIButtonTypeの指定をやめたら直りました。とても単純なところでつまづいていたようで・・・・勉強になりました。
ありがとうございました。

投稿2016/10/25 12:38

mk_

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

setTitleとsetImageのUIControlState()という書き方は見たことがないのですが、これは何でしょうか?Swift2までの書き方を踏襲するなら、

swift

1camera.setTitle(text_camera, for: .normal) 2camera.setImage(cimage, for: .normal)

という書き方になると思うのですが。これで直るといいなぁ‥。

あとついでに、.roundedRectはdeprecatedなので、.systemにしておいて下さい。

投稿2016/10/25 08:44

編集2016/10/25 08:56
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mk_

2016/10/25 10:46

変更してみましたが、だめでした・・・・
guest

0

普通は
let hogebutton = UIButton()
let image:UIImage = UIImage(named:"buttonimag.png")
hogebutton.setImage(image, for: UIControlState())

どんなソースか開示して頂くと幸いです。

投稿2016/10/25 06:31

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mk_

2016/10/25 06:42

申しわけありません、コードを開示しました。教えていただいたものを参考に少し変えてみました。
mk_

2016/10/25 06:42

ですが、変化なしでした・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問