Я хочу иметь возможность создавать пользовательские кнопки с фоновым изображением, используя фоновое изображение типа scale9, что означает, что ширина кнопки может быть динамической. Я видел пример в Интернете, где люди делают это для каждой кнопки, но мне кажется, что было бы лучше создать новый объект, который является подклассом UIButton, который затем можно использовать в конструкторе интерфейсов в качестве класса для любого пользовательского кнопка (круглая прямоугольная кнопка настроена на пользовательскую).
Вот что у меня есть до сих пор.
#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
Однако это не работает. Когда я запускаю этот им-симулятор, я вижу текст кнопки, но у кнопки нет фона. Я поставил точку останова и знаю, что она работает, и проверяю консоль, и ошибок нет.
Кто-нибудь может помочь? исправить это или я неправильно думаю?
Спасибо