0
我有一个UIButton子类化。尝试构建一个复制AppStore“立即购买”按钮的类。我用3个CALayers创建按钮的样式。UIButton子类上的CALayer动画之后的触摸区域
当调整按钮使用:
[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是错误的选择?我在这里错过了什么?