0

アプリケーションのボタンの右隅にテキストを含む不透明なボタンを作成したいと考えていました。不透明度を達成するために次の方法を試しましたが、不透明度を取得できませんでした。

以下のアプローチでは、背景に対して白いボタンを取得していました

1.      UIButton *Button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
        Button.frame = CGRectMake(offset, height/4, buttonWidth, buttonHeight);
        [Button setTitle:ButtonLabel forState:UIControlStateNormal];
         Button.backgroundColor = [UIColor clearColor];
        [Button addTarget:self action:@selector(action:)forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:Button];

2.  CALayer *layer = Button.layer;
    layer.backgroundColor = [[UIColor clearColor] CGColor];
    layer.borderColor = [[UIColor blackColor] CGColor];
    layer.cornerRadius = 8.0f;
    layer.borderWidth = 2.0f;

これが重複している可能性があることは知っていますが、リンクに示されている提案からは何も機能していません

また、ボタンの右下隅にタイトルを設定する方法を提案してください。

4

3 に答える 3

2

の場合、のプロパティをopacity設定できますsetAlphaUIButton

テキストの配置にはcontentHorizontalAlignmentcontentVerticalAlignment

編集されたコードは次のとおりです。

UIButton *Button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
Button.frame = CGRectMake(10, 10, 200, 100);
[Button setTitle:@"myButton" forState:UIControlStateNormal];
Button.backgroundColor = [UIColor clearColor];
[Button setAlpha:0.42];
Button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
Button.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
[Button addTarget:self action:@selector(action:)forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:Button];
于 2013-03-13T07:05:44.803 に答える
1

の代わりにカスタムタイプでボタンを作成するだけですUIButtonTypeRoundedRect

UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
于 2013-03-13T07:04:51.177 に答える
1

RoundRect、InfoDark などの特別なスタイルが必要ない場合は、buttonTypeを使用UIButtonTypeCustomします。Quartz を使用して、境界線の色や角を丸くすることができます。

 #import <QuartzCore/QuartzCore.h>

_button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
_button.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
_button.layer.borderColor = [[UIColor blackColor] CGColor];
_button.layer.borderWidth = 1;
_button.layer.cornerRadius = 10;
于 2013-03-13T07:02:12.303 に答える