2016-08-31 1 views
0

Я пытаюсь иметь флажок с помощью кнопки, и это то, что я делаю:UIButton изображения не отображается на нормальном состоянии

int checkBoxWidth = foregroundHeight/12.0; 
int checkBoxHeight = foregroundHeight/12.0; 
UIButton* checkBox = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, checkBoxWidth, checkBoxHeight)]; 
//[checkBox setBackgroundImage:[Utility getEmptyCheckBoxOutIcon] forState:UIControlStateNormal]; 
//[checkBox setBackgroundImage:[Utility getCheckBoxOutIcon] forState:UIControlStateSelected]; 
[checkBox setImage:[Utility getEmptyCheckBoxOutIcon] forState:UIControlStateNormal]; 
[checkBox setImage:[Utility getCheckBoxOutIcon] forState:UIControlStateSelected]; 

checkBox.layer.borderWidth = 1.0; 
checkBox.layer.borderColor = [Utility primaryColor].CGColor; 
checkBox.layer.cornerRadius = cornerRadius; 
[switchView addSubview:checkBox]; 

но изображение появляется только тогда, когда я прикасаюсь к кнопке, в любом другом государстве изображение не отображается. Что-то не хватает?

+0

Что вы делаете на кнопку мыши, а также загрузить этот код. – sanjeet

+0

Если тип вашей кнопки - это система, измените ее на пользовательский – vishnuvarthan

+0

@sanjeet, я загружу код кнопки с кодом, но на данный момент это не имеет значения, верно? Даже если у меня нет кнопки, изображение должно отображаться для нормального состояния, не так ли? что озадачивает то, что изображение показывает только то, что я касаюсь кнопки, после чего оно исчезает. еще раз. – user1324887

ответ

1

Вы должны изменить состояние кнопки для изображения, которое нужно изменить. Используйте приведенный ниже код для достижения желаемого результата.

int checkBoxWidth = foregroundHeight/12.0; 
int checkBoxHeight = foregroundHeight/12.0; 
UIButton* checkBox = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, checkBoxWidth, checkBoxHeight)]; 
[checkBox setImage:[Utility getEmptyCheckBoxOutIcon] forState:UIControlStateNormal]; 
[checkBox setImage:[Utility getCheckBoxOutIcon] forState:UIControlStateSelected]; 
[checkBox setImage:[Utility getCheckBoxOutIcon] forState:UIControlStateHighlighted]; 
[checkBox setImage:[Utility getCheckBoxOutIcon] forState:UIControlStateSelected | UIControlStateHighlighted]; 
[checkBox addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
checkBox.layer.borderWidth = 1.0; 
checkBox.layer.borderColor = [Utility primaryColor].CGColor; 
checkBox.layer.cornerRadius = cornerRadius; 
[switchView addSubview:checkBox]; 

И добавьте эту целевую функцию

-(IBAction)buttonClicked:(UIButton*)sender{ 

sender.selected = !sender.selected; 

} 
+1

Это не проблема, кнопка должна отображаться на первом месте. Проблемы не в том, что кнопка не отображается. Появляется кнопка, но оттенок не применяется. так что белая кнопка и белый фон выглядят одинаково. Фактические проблемы: 'checkBox.tintColor = [Utility primaryColor];' не работает. Другая проблема заключалась в добавлении кнопки в подвью. Итак, ваш первый ответ помог в отладке :) – user1324887

 Смежные вопросы

  • Нет связанных вопросов^_^