У меня есть прозрачное изображение, которое («hold_empty.png», ниже), которое я хочу превратить в кнопку. Внутри кнопки будет вид с цветным фоном, размер которого немного меньше, чем фактическое изображение для хранения цвета фона.
Причина этого в том, что изображение имеет закругленные углы, и поэтому я не могу просто наложить цвет фона на изображение, так как оно будет больше, чем изображение.
Изображение представляет собой прозрачный квадрат с «закругленными углами». Эффект, который я пытаюсь создать, должен быть похож на слои.
- Цвет фона слоя (красный, зеленый и т. Д.)
- Изображение "hold_empty.png" (выше)
- Весь объект (включая цветной слой bg) должен быть активным.
Проблема, с которой я сталкиваюсь, заключается в том, что кликабельно может быть только изображение (и его границы), а не весь объект.
Код следует ниже.
// x,y,w,h
CGRect frame = CGRectMake(10, 10, 72, 72);
CGRect frame2 = CGRectMake(5, 5, 60, 60); // I know this is not filling the image, its just a test
UIView *bgColorView = [[UIView alloc] initWithFrame:frame2];
[bgColorView setFrame:frame2];
bgColorView.backgroundColor = [UIColor redColor];
UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"hold_empty" ofType:@"png"]];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn addSubview:bgColorView];
[btn setImage:image forState:UIControlStateNormal];
btn.frame = frame;
[btn addTarget:self action:@selector(btnSelectColor:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
[bgColorView release];
Итак, подведем итоги: как сделать кнопку прозрачного изображения с цветом фона кликабельной?
Спасибо.