Я хочу иметь возможность создавать пользовательские кнопки с фоновым изображением, используя фоновое изображение типа scale9, означающее, что ширина кнопки может быть динамической. Я видел пример в Интернете людей, делающих это на основе кнопки, но мне кажется, что не было бы лучше создать новый объект, который подклассы UIButton, который вы затем можете использовать в Interface Designer как класс для любого пользовательского кнопка (круглая прямоугольная кнопка установлена на заказ).
Вот что у меня есть.
#import <Foundation/Foundation.h>
@interface LargeButton : UIButton {
}
@end
#import "LargeButton.h"
@implementation LargeButton
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.frame = CGRectMake(0, 0, 170.0, 48.0);
// Center the text vertically and horizontally
self.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
UIImage *image = [UIImage imageNamed:@"btnBigPurple.png"];
// Make a stretchable image from the original image
UIImage *stretchImage =
[image stretchableImageWithLeftCapWidth:15.0 topCapHeight:0.0];
// Set the background to the stretchable image
[self setBackgroundImage:image forState:UIControlStateNormal];
// Make the background color clear
//self.backgroundColor = [UIColor clearColor];
}
return self;
}
@end
Однако это не похоже на работу. Когда я запускаю этот имитатор, я вижу текст кнопки, но кнопка не имеет фона. Я установил точку останова, и я знаю, что она работает, и проверил консоль, и у меня нет ошибок.
Может кто-нибудь помочь? исправить это или мой образ мышления неправильный?
Спасибо