Я ищу, чтобы создать пользовательский UIButton (не подкласс) progrmatically, я бы хотел, чтобы у него было фоновое изображение, которое будет растягиваться по мере увеличения ширины UIButton. Как мне это сделать?Создание пользовательского UIButton
ответ
Сначала создайте растяжению UIImage
(это предполагает «шапку» в конце вашей кнопки изображения 10px):
UIImage *backgroundImage = [[UIImage imageNamed:@"ImageBackground.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:0];
Затем используйте растяжение изображения в качестве фона:
[myButton setBackgroundImage:backgroundImage forState:UIControlStateNormal];
Когда вы устанавливаете backgroundImage на UIButton
для UIControlStateNormal
, он действует как фон для . Все заявляет, если вы явно не задали другой backgroundImage для любого другого состояния.
Вы должны установить UIImage, созданный с помощью кнопки «stretchableImageWithLeftCapWidth:topCapHeight:» в качестве кнопки. Например:
UIImage *yourBackgroundImage = [[UIImage imageNamed:@"yourImage.png"] stretchableImageWithLeftCapWidth:1 topCapHeight:1];
yourButton.backgroundColor = [UIColor colorWithPatternImage:yourBackgroundImage];
Неверный: + colorWithPatternImage всегда плитка – tofi9
Еще лучше, используйте свойство UIView contentStretch. В противном случае вы можете получить некоторые неприятные сюрпризы, если вы используете stretchableImageWithLeftCapWidth для сжатия графики или растяжения сложной графики с эффектами освещения или блеска.
Ну, свойство UIView contentStretch будет правильным решением, но, к сожалению, оно не работает с базовым свойством UIButton (по крайней мере, XCode 4.0.2). Он даже выставлен в IB, поэтому вам не нужен какой-либо код для него.
- 1. Создание UIButton
- 2. Создание UIButton в подклассе UIButton
- 3. Выделение пользовательского UIButton
- 4. Непрозрачность пользовательского UIButton
- 5. Создание пользовательского переключателя с помощью UIButton в Interface Builder
- 6. iPhone приложение. Создание пользовательского UIView, содержащего UITextField и UIButton
- 7. Создание пользовательского скроллера UIScrollView
- 8. пользовательского UIButton в не называется
- 9. uibutton в пределах пользовательского uitablecell
- 10. Локализация пользовательского UIButton в xCode
- 11. Добавление пользовательского UIButton в subView
- 12. Создание пользовательского TableviewCell с флажком
- 13. Создание UIButton внутри UITextfield
- 14. Добавить UIButton в ViewController из пользовательского класса
- 15. Создание пользовательского индекса UITableView iOS
- 16. Создание пользовательского UITableViewCell
- 17. Создание UIButton меняет изображение UIImageView
- 18. Создание UIButton с формой CAShapeLayer
- 19. Создание мигающего изображения на UIButton?
- 20. Создание новой строки UIButton программно
- 21. Создание кнопки пользовательского интерфейса для TableViewCell
- 22. Создание UIButton программно с пользовательским классом
- 23. Добавление пользовательского uibutton через конструктор интерфейса
- 24. UIButton с фиксированного размера пользовательского образа
- 25. Удалить UITableViewCell с помощью пользовательского UIButton
- 26. Нельзя касаться UIButton внутри пользовательского программного UIView
- 27. Обнаруживать UIButton при использовании пользовательского UITableViewCell
- 28. Добавление UILongPressGestureRecognizer в UIButton внутри пользовательского UITableViewCell
- 29. Заголовок не отображается для пользовательского класса UIButton
- 30. Кодирование SEGUE поповер для пользовательского UIButton
Я вижу, как это работает, но по какой-то причине код, который я использую (http://gist.github.com/378341), ничего не добавляет к представлению. Мой файл redButton.png находится в моих ресурсах. – Joshua
Проверьте (используя отладчик или используя 'NSLog'), что ваш' backgroundImage' не равен нулю. Если '+ [UIImage imageNamed:]' не может найти ваше изображение, оно вернет нуль. –
Minor nit: '-stretchableImage ...' принимает 2 целых числа в качестве входных, а не плавающих точек. – kennytm