2011-11-29 13 views
6

私はiPadアプリケーションのためにプログラムでボタンを作成しています。ボタンを見ると、その下に影のタイプがあるように見えます。それは何ですか?私はそれをどのように取り除くことができますか?ここ 私のボタンに影があります

shadow button

は、それを作成するコードです:

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
myButton.titleLabel.font = [UIFont fontWithName:@"Trebuchet MS" size:12]; 
[myButton setTitle:@"test" forState:UIControlStateNormal]; 
myButton.frame = CGRectMake(0, 0, self.leftScrollView.frame.size.width, 50); 

UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"gear12.png"]]; 

[myButton addSubview:myImageView]; 
[self.leftScrollView addSubview:myButton]; 

UPDATE:

[OK]を、私はそれだけで効果を得ることに気づくときに私のscrollviewインチビューに追加すると影効果はありません。

トップテストボタン、ボタンはビューのサブビューです。下のボタンは、ビューのサブビューであるスクロールビューのサブビューです(ボタン/ビューvsボタン/スクロールビュー/ビュー)。

白い部分がビューです。グレーは、スクロールビュー/ビューです。

shadow effect 2

UPDATE 2:

robmayorで指摘したように、UIButtonsは常に背景色が白であるときだけnoticebleない、という二重線の効果を持っています。青はビュー、灰色はサブビュースクロールビューです。

enter image description here

+0

これは便利かもしれません: http://stackoverflow.com/questions/18341319/how-to-get-rid-of-gap-around-round-rect-button –

答えて

5

iPadsでは、丸い四角形のUIButtonは、常に下端に白線を描画します。ボタンのスーパービューが白であれば白い線は見えませんが、まだそこにあります。

あなたは、いくつかのオプションがあります。

  • スーパーの白にしますが。これは一番簡単ですが、見た目が気に入らないかもしれません。

  • お気に入りの画像エディタで四角い丸い画像を作成します。ボタンの種類をカスタムに設定し、四角形の丸い画像をボタンの画像として設定します。

  • UIButtonのサブクラスを作成し、そのdrawRect:メソッドをオーバーライドします。

  • はカスタムにボタンタイプを設定し、ボタンを丸四角形の外観を与えるために、ボタンのレイヤーのプロパティ(button.layer.backgroundColorbutton.layer.borderColorbutton.layer.borderWidthbutton.layer.cornerRadius)を使用します。ボタンがタッチされたときに、通常のように青色に変えたい場合は、button.layer.backgroundColorを更新する必要があります。 (実際には、通常の青色のグラデーションが使用されます。)

+0

これはりんごのかわいいです。単純なボタンを追加すると複雑になるはずです。ありがとう。 – Padin215

+0

丸い四角形のボタンは、実際には単一のグループ化スタイルのUITableViewCellとして描画されるため、下の白い枠線を継承しているようです。この白い枠線は、標準的なグループ化スタイルの表の背景の下のセルに適しています。しかし、ボタンを同じ描画コードにすることは、Apple側にとっては貧しい選択でした。 – matt

-1

[UIButton buttonWithType:UIButtonTypeRoundedRect]を置き換えます

UIButton *myButton = [UIButton new]; 

か:

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

をカスタマイズし、ボタンを持っていると思います。必要に応じて、角を丸くして作ってもかまいません。

+1

なぜそれは違いをもたらすだろうか?丸い四角形のボタンは、通常、このように2回描かれません。 OPが誤って2つのボタンをほぼ同じ場所に描いている可能性が高くなります。 – matt

+0

私は今、私のコードの中にただ一つのボタンを追加しています。私は情報を追加して私の質問を更新しました。 2番目の画像、私はちょうどIBのボタンをドラッグしました。 – Padin215

+0

@matt、丸い四角形のボタンは絶対にそういうものです。 IBで自分自身で確認するのは簡単です。 –

9

この質問は古い(6ヶ月)ですが、この二重線の悪影響を削除/マスクする解決策が見つかりました。選択

[yourButton.layer setBackgroundColor: [[UIColor blackColor]CGColor]]; 
[yourButton.layer setBorderWidth:1.0f]; 
[yourButton.layer setBorderColor:[[UIColor blackColor]CGColor]]; 
[yourButton.layer setShadowOpacity:0.1f]; 
[yourButton.layer setCornerRadius:10]; 

UIColorは、ビューの現在の背景に依存しています。

結果:enter image description here

+0

ボタンで黒い枠線を作成します。よりうまくいくが、行を削除しない。 – Rodrigo

+0

これは完璧です! (ただし、背景色やシャドーの不透明度を設定する必要はありません。) – fumoboy007

関連する問題