"Синяя коробка" появляется рядом с пользовательским UIButton в приложении iOS
Я разрабатываю приложение для iPhone, которое работает как пульт для включения и выключения лампочек, и я использую UIButtons для этого:
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];
[button setBackgroundImage:bulb_on forState:UIControlStateSelected];
[button setBackgroundImage:bulb_off forState:UIControlStateNormal];
button.frame = CGRectMake(SPACING_LEFT + (BUTTON_SPACING * buttonNum) % (NUMBER_OF_HORIZONTAL_BUTTONS * BUTTON_SPACING), SPACING_TOP + y_padding, BUTTON_SIZE_X, BUTTON_SIZE_Y);
[self.scrollView addSubview:button];
Все работает отлично, за исключением небольшой, но все еще раздражающей детали:
![buttons]()
Как вы можете видеть, в левом верхнем углу выбранной кнопки есть какой-то синий "ящик" или тень. Кнопка в нормальном состоянии не имеет такой вещи. Что это может произойти и как его удалить?
Ответы
Ответ 1
Я думаю, это потому, что вы создали UIButtonTypeRoundedRect
не a buttonWithType:UIButtonTypeCustom
Сделайте это так:
UIButton *button = [[UIButton alloc]initWithFrame: CGRectMake(SPACING_LEFT + (BUTTON_SPACING * buttonNum) % (NUMBER_OF_HORIZONTAL_BUTTONS * BUTTON_SPACING), SPACING_TOP + y_padding, BUTTON_SIZE_X, BUTTON_SIZE_Y)];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];
[button setBackgroundImage:bulb_on forState:UIControlStateSelected];
[button setBackgroundImage:bulb_off forState:UIControlStateNormal];
[self.scrollView addSubview:button];
Ответ 2
Попробуйте это программно [UIButton buttonWithType:UIButtonTypeCustom];
Ответ 3
По умолчанию тип кнопки System
, измените тип кнопки на Custom
.
Код для исправления:
[UIButton buttonWithType:UIButtonTypeCustom];
Раскадровка для исправления:
Обратите внимание на скриншот, чтобы зафиксировать в таблице.
![введите описание изображения здесь]()