2009-03-20 9 views
4

丸いUIButton(丸い矩形ではない)を描くことができるかどうかを知りたい。Round UIButton

カスタムのUIButtonで丸いイメージを追加すると、丸いボタンのように見えます。しかし、ボタンがクリックされた瞬間に、ボタンの境界が見えるようになり、正方形のボタンのように見えます。そして、クリックが終了すると、丸いボタンのように見えます。
クリックが発生した時点でもボタンが丸いボタンのように見えます。これは可能ですか?

+1

あなたが有用サブクラスであるOBShapedButtonを見つけることができます。ソースはhttps://github.com/ole/OBShapedButtonから入手できます。透明な不規則な形のボタンを使用でき、通常のUIButtonと同じ機能を使用できます。 – Luke

答えて

2

おそらくカスタムコントロールを作成する必要がありますが、本当に丸いボタンが必要ですか?

すべてのプラットフォームにUI規約があり、iPhoneも例外ではありません。ユーザーは、ボタンが四角形の丸いと予想します。コメントに応答して

UPDATE:

私はこの権利を取得していた場合は、丸いボタンを探しているのではなく、クリック可能な(触れる)イメージしていません。

UIImageViewとそのtouchesBeganメソッドを使用できます。

UPDATE 2:

が第二待ち。どんな種類のラジオボタンを話していますか?何らかの理由で私はあなたが本当のラジオを模倣しようとしていると思っていました。 radio buttonグループについて話している場合は、UISegmentedControlまたはUIPickerをご利用ください。

+1

実際にラジオボタンを追加する必要があります。そのために、私は丸い形状のラジオボタン画像を持っています。なぜ丸いボタンを描こうとしていたのですか? – saikamesh

+0

はい、私はこのメソッドを試します。私は、ボタンに画像を追加する方が簡単だと思った。 – saikamesh

0

私が知っているSDK(確かに、書籍/スクリーンキャストのチュートリアルを超えた経験はほとんどありません)から、独自のコントロールを作成してラジオボタンを作成する必要があります。 this questionにそれを実装する方法に関する2つの提案があります。

しかし、ユーザーの観点からは、ネイティブのコントロールに固執するのが良いと感じています。 iPhoneユーザーは、この種のやりとりのための特定のコントロール(つまり、UITableViewsまたはUIPickerViews)に慣れています。実質的に普遍的なUI規則から逸脱すると、ユーザーエクスペリエンスがより不快になりがちです。

4

2つの丸いボタン画像を作成します.1つは押した状態用、もう1つは押し付けられていない状態用です。

IBでは、カスタムタイプのUIButtonを作成します。背景画像を設定したセクションに移動し、ドロップダウンを "すべて"に設定して標準にして、画像を非表示画像に設定します。

次に、ドロップダウンを「選択済み」に変更して、押した画像を挿入します。

ここで、塗りつぶしの種類を縦横比に変更し、ボタンをsqareにします。どこでも通常のUIButtonとして使用します。もちろん、同様の手順(UIControlStateNormalとUIControlStateSelectedの画像設定)ですべてのプログラムを簡単に行うこともできます。

2
UIButton *but=[UIButton buttonWithType:UIButtonTypeCustom]; 

but.layer.cornerRadius=50; 
+0

but.clipsToBounds = YESを追加する必要があります。 –

9

テストされたコード:

の.h

-(void)vijayWithApple; 

。メートル

-(void)vijayWithApple{ 

      NSLog(@"vijayWithApple Called"); 
    } 


UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

[button setImage:[UIImage imageNamed:@"Micky.png"] forState:UIControlStateNormal]; 

[button addTarget:self action:@selector(vijayWithApple) forControlEvents:UIControlEventTouchUpInside]; 

[button setTitle:@"Show View" forState:UIControlStateNormal]; 

button.frame = CGRectMake(135.0, 180.0, 40.0, 40.0);//width and height should be same value 

button.clipsToBounds = YES; 

button.layer.cornerRadius = 20;//half of the width 

button.layer.borderColor=[UIColor redColor].CGColor; 

button.layer.borderWidth=2.0f; 

[self.view addSubview:button]; 

結果

enter image description here

+1

StackOverflowは3ではなく1つの単語で綴られています:) –

+0

ニースキャッチ...... –

+2

このウェブサイトのドメイン名は1つの単語として綴られていますが、それはちょうどそのドメイン名であるからです。スタックオーバーフローは2ワードです。 – Sam