У меня есть UIButton, который я подклассифицирую.Попытка создать класс, который дублирует кнопки AppStore «Купить сейчас».Я создаю стиль кнопки с 3 слоями.
При изменении размера кнопки, которую я использую:
[CATransaction begin];
[CATransaction setAnimationDuration:0.25];
CGSize size = [self.titleLabel.text sizeWithFont:[UIFont boldSystemFontOfSize:18]];
size.width = size.width + kPadding;
for(CALayer *la in self.layer.sublayers){
CGRect boundsRect = la.frame;
float inset = boundsRect.size.width - size.width;
boundsRect.origin.x = boundsRect.origin.x+inset;
boundsRect.size.width = size.width;
la.frame = boundsRect;
[la layoutIfNeeded];
}
[CATransaction commit];
Это ведет себя отлично и выглядит великолепно, но область касания кнопки остается такой же, как исходный размер кнопки.Любая попытка изменить рамку \ границы кнопки или основного CALayer приводит к странному поведению, и область касания все еще кажется неправильной.
Я также анимирую изменение цвета с помощью CABasicAnimation.Является ли использование CALayer неправильным выбором?Что мне здесь не хватает?