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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

2281閲覧

iOSでUIBarButtonItemの背景色を変える方法

yrema

総合スコア286

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2019/05/04 07:51

タイトルの通りですが、
UIBarButtonItemが押されたら背景をグレーにしたいと思っています。
★の部分でButtonならば.Layer.BackgroundColorが使えるので試しにキャストしてもダメでした。
背景色を変える方法はないでしょうか?

c#

1 private UIBarButtonItem CreateButton(string iconName, OnButtonClicked action) 2 { 3 UIBarButtonItem button = new UIBarButtonItem( 4 UIImage.FromBundle(iconName).ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), // AlwaysOriginalを設定しないとTintColorでしか色変更できない青色になる tips 5 UIBarButtonItemStyle.Plain, (s, e)=>action(s, e)); 6 7 button.Width = BUTTON_WIDTH; 8 9 return button; 10 } 11 12 private void OnPenButtonClicked(object sender, EventArgs e) 13 { 14 Debug.WriteLine("OnPenButtonClicked"); 15 Mode = ModeEnum.Pen; 16 this.StrokeColor = UIColor.FromRGB(255, 0, 0).CGColor; 17 ((UIButton)sender).Layer.BackgroundColor = UIColor.Gray.CGColor; // ★キャストできない 18 }

◆環境
▼Windows 10
Visual Studio Community 2017 Version 15.9.11
Xamarin 4.12.3.83
Xamarin.iOS and Xamarin.Mac SDK 12.4.0.64
▼Mac mini(Late 2014)
macOS Majave 10.14.4
Xcode 10.2.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

UIBarButtonItem のドキュメント にある 見た目のカスタマイズ のページを見ると、背景色を変える API は用意されてないようなので変えさせたくないのではないでしょうか? (背景画像は変えれるようなので画像にすれば無理やりできるかもしれませんが)

文字色を変えるようにしたほうが iOS の方針に沿ってるのではないかと思います (実機で確認してみたところ、Apple が開発してるアプリも文字色だけが変わっています)。

投稿2019/05/04 17:36

korosonya

総合スコア78

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

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

yrema

2019/05/04 18:07

そうなんですね。う~ん・・・困ったなあ。とりあえず、教えてくださってありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問