Ответ 1
Изображение отменяет название, вам нужно сделать фоновое изображение для отображения названия.
[button setBackgroundImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal];
Я, должно быть, забыл что-то совершенно очевидное? но моя кнопка отображает его изображение и размер правильно, но я просто не могу получить название, которое будет отображаться.
Я сделал очень простой тест, название даже не появляется, когда я это делаю:
CGRect frameBtn = CGRectMake(160.0f, 150.0f, 144.0f, 42.0f);
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal];
[button setTitle:@"Hello" forState:UIControlStateNormal];
[button setFrame:frameBtn];
NSLog(@"Title:%@", [button currentTitle]);
//prints "Title:Hello
[self addSubview:button];
У меня есть класс factory, который генерирует пользовательские кнопки для меня, и я думал, что перепутал некоторые детали там, поэтому я переместил вышеуказанный код непосредственно в мой UIView
, заголовок все еще пуст.
Является ли это ошибкой, или я просто пропускаю что-то прямо перед глазами.
Спасибо за дополнительный набор глаз:)
Изображение отменяет название, вам нужно сделать фоновое изображение для отображения названия.
[button setBackgroundImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal];
Я просто применил spome довольно похожую проблему... Просто установите цвет заголовка, я думаю, что текущий - белый;)
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
Я нашел проблему!
Это не изображение, переопределяющее заголовок. Изображение нажимается на изображение.
Попробуйте использовать это:
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0.0, -img.size.width, 0.0, 0.0 )];
Надеюсь, что это поможет!
Когда вы используете UIButton
, кнопка использует некоторый встроенный размер для своего фрейма.
Вы должны установить фрейм:
button.frame = CGRectMake(0, 0, width, height);
или даже лучше и комфортно:
[button sizeToFit];
У меня была аналогичная проблема, что название не было показано. Я забыл установить свойство frame:
//set the position of the button
button.frame = CGRectMake(100, 170, 100, 30);