не могу заставить мой UIButton отображаться как полупрозрачный - PullRequest
3 голосов
/ 09 июля 2011

Я добавляю UIButton в качестве subView во всплывающем окне, и я не могу заставить его отображаться полупрозрачно.Фон для основного вида всплывающего окна отображается полупрозрачно, но эта кнопка UIB остается полностью непрозрачной.Может кто-нибудь сказать мне, почему код ниже не работает?Спасибо.

  UIButton* checkButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    checkButton.frame = CGRectMake(187, 288, 30, 30);
    [checkButton setTitle:@"?" forState:UIControlStateNormal];
    checkButton.opaque = NO;
    [checkButton setBackgroundColor:[UIColor colorWithWhite:1.0 alpha:0.3]];        
    [checkButton setTitleColor: [UIColor colorWithRed: 51 / 255.0 green:0 blue: 153 / 255.0 alpha:0.5] forState: UIControlStateNormal];
    [checkButton addTarget:self action:@selector(check) forControlEvents:UIControlEventTouchUpInside];
    [self addSubview:checkButton];

Ответы [ 5 ]

3 голосов
/ 09 июля 2011

Фон для кнопки RoundedRect - это прямоугольник, в котором она находится, а не сама кнопка.Попробуйте изменить цвет фона на красный или что-то такое же видимое, и вы увидите, что фон виден только между закругленными углами кнопки и прямоугольной рамкой, в которой установлена ​​кнопка.К сожалению, вы не можете изменить цвет кнопки, что большинство людей думают, что они делают, когда изменяют свойство backgroundColor.

Чтобы изменить цвет кнопки, вам нужно будет использовать UIButtonTypeCustom.

2 голосов
/ 09 июля 2011

попробуйте установить UIColor на

myButton.layer.backgroundColor = [UIColor x..]

вам понадобится

#import <QuartzCore/QuartzCore.h>

Я уверен, что цвет в прямоугольной кнопке с закругленными углами находится в слое, а не на обычном фоне, поэтому люди пытаются изменить его цвет.

поочередно, установите альфа на цвете представления обратно на 1 и выберите свойство альфа-представления, что, безусловно, сделает все за один ход.

1 голос
/ 09 июля 2011

PengOne правильно - установка цвета фона не меняет цвет скругленного прямоугольника. Это влияет только на углы вокруг прямоугольника.

Но вы также можете просто установить для свойства alpha кнопки значение меньше единицы. Попробуйте 0,7, чтобы сделать вид полупрозрачным.

0 голосов
/ 09 июля 2011

UIButtonTypeRoundedRect - это странно.Установка для него фона / альфа и т. Д. Только изменяет фон прямоугольника, в который отображается кнопка.

Вы можете изменить тип кнопки на UIButtonTypeCustom, а затем использовать QuartzCore, чтобы установить cornerRadius, чтобы он выглядел округленным.*

0 голосов
/ 09 июля 2011

Попробуйте использовать UIButtonTypeCustom вместо UIButtonTypeRoundedRect в качестве типа кнопки.

...