web-dev-qa-db-ja.com

プログラムでUIButtonラベルに影を追加する

運が悪いので、ボタンラベルに1pxの黒いドロップシャドウを追加しようとしています。私はこれを試しました:self.setTitleShadowOffset = CGSizeMake(0, -1);しかし私は得ます:

構造体または共用体ではないものでのメンバー 'setTitleShadowOffset'の要求

どんな提案も素晴らしい感謝です!

19
edhog

他の回答では、影の色が適切に設定されていません(影の色をデフォルトの黒に設定しようとしていたため、気づかなかったと思います)。

このコードは、ボタンのテキストに白い影を追加するのに役立ちました。

myButton.titleLabel.shadowOffset = CGSizeMake(0, 1);
[myButton setTitleShadowColor:[UIColor whiteColor] forState:UIControlStateNormal];
21
ArtOfWarfare

適切なプロパティはself.titleLabel.shadowOffsetです。

UIButton *b = [UIButton buttonWithType:UIButtonTypeRoundedRect];    
[b setTitleShadowColor:[UIColor purpleColor] forState:UIControlStateNormal];
b.titleLabel.shadowOffset = CGSizeMake(1.0, 1.0);
[b setTitle:@"Hello, I'm a Button" forState:UIControlStateNormal];
b.frame = CGRectMake(10.0, 10.0,300.0, 40.0);
38
fsaint

setTitleShadowOffsetUIButtonは非推奨になりました。 shadowOffsetのtitleLabelプロパティのUIButtonを使用します

buttonName.titleLabel.shadowOffset = CGSizeMake(0, -1);

10
visakh7

In Swift 3.0

myButton.titleLabel?.layer.shadowRadius = 3
myButton.titleLabel?.layer.shadowColor = UIColor.black.cgColor
myButton.titleLabel?.layer.shadowOffset = CGSize(width: 0, height: 1)
myButton.titleLabel?.layer.shadowOpacity = 0.5
myButton.titleLabel?.layer.masksToBounds = false

enter image description here

7
Raphael Souza

for Swift 3:

  button.setTitleShadowColor(UIColor.red, for: .normal)
  button.titleLabel?.shadowOffset = CGSize(width: 2, height: 2)
0
Wilson

Radiusプロパティを使用してObjective-Cのボタンタイトルに影を追加する方法は次のとおりです。

#import <QuartzCore/QuartzCore.h>    

button.titleLabel.layer.shadowOffset = CGSizeMake(2.0, 2.0);
button.titleLabel.layer.shadowColor = [UIColor colorWithWhite:0.1 alpha:0.7].CGColor;
button.titleLabel.layer.shadowRadius = 2.0;
button.titleLabel.layer.shadowOpacity = 1.0;
button.titleLabel.layer.masksToBounds = NO;
0
Userich