我正在构建的应用程序有很多自定义UIButtons铺设在相当精确的布局图像的顶部。按钮,控制图像和标签,你有什么,但有一个清晰的定制UIButton坐在上面来处理水龙头。突出显示一个自定义UIButton
我的客户昨天说:“我希望当你点击它时突出显示”。没关系,它立即推动一个新的uinavigationcontroller视图...它不闪烁,所以他很困惑。 Oy公司。
这是我所做的解决它。我不喜欢它,但它是我做了什么:
我的子类的UIButton(命名为FlashingUIButton)。
出于某种原因,我不能在高亮显示的控制模式下使用背景图像进行配置。它似乎从未触及过“突出显示”的状态。不知道这是为什么。
所以不是我写的:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self setBackgroundImage:[UIImage imageNamed:@"grey_screen"] forState:UIControlStateNormal];
[self performSelector:@selector(resetImage) withObject:nil afterDelay:0.2];
[super touchesBegan:touches withEvent:event];
}
-(void)resetImage
{
[self setBackgroundImage:nil forState:UIControlStateNormal];
}
这愉快地奠定了我的grey_screen.png(30%不透明的黑盒子)在按钮上时,它的挖掘,并用一秒钟后高兴emptyness 0.2替换它。
这是好的,但它意味着我必须要经过我的许多碎粒和UIButtons改变我的所有按钮FlashingUIButtons。这不是世界的尽头,但我真的很希望把它作为一个UIButton类别来解决,并且一举成名。
任何建议比这更好的方法吗?
您可能必须使用它的方法,喜欢了setBackgroundImage,仅仅是因为在执行,我宣布它作为ID前beganButton之前把(UIButton的*)。我不确定如果没有这样做,它会起作用。另一种方法是将它声明为一个UIView而不是id,因为你知道它至少总是一个UIView。无论哪种方式,你都可以玩弄它。 – Omar 2011-01-07 16:50:33