我正在使用代码:
{ randomstatus=0; msg=[[NSString alloc]initWithFormat:@"Good job, do you want to continue?"]; UIActionSheet *actionSheet=[[UIActionSheet alloc]initWithTitle:msg delegate:self cancelButtonTitle:@"No" destructiveButtonTitle:@"Yes" otherButtonTitles:nil]; [actionSheet showInView:self.view]; [actionSheet release]; [msg release]; }
我不想更改代码,但我需要“destructiveButton”为绿色而不是红色。这是可能的,还是我需要使用不同的按钮?
答案 0 :(得分:3)
没有“标准”方式来改变按钮的显示。如果Apple改变UIActionSheet组件,你使用的任何方式都将是黑客攻击并且将来可能会破坏。如果他们打扰了App-Store的神,他们也可能会拒绝你的应用。
我认为实现这一目标的最具前瞻性的方法是从头开始创建自己的操作表类,即不是子类化UIActionSheet(因为这可能在将来中断)。虽然这可能比一些黑客更多的工作,但你将获得的额外灵活性将来会有用。
这应该不会太难。您需要一个视图,该视图是操作表的背景,您可以通过截取标准UIActionSheet和一些photoshopping来获取该视图。然后将自定义按钮添加为子视图。用于调出视图的一些动画,你就完成了。
我的目标是让你的类实现UIActionSheet所做的所有方法,以及启动UIActionSHeetDelegate期望的方法。通过这种方式,您可以在任何您使用原生UIActionSheet
的地方替换它答案 1 :(得分:2)
不幸的是,没有任何官方提供的自定义UIActionSheet按钮的方法。
但是,您可以访问UIActionSheet的子视图(可能会在未来的iPhone OS更新中中断),或者使用覆盖原始破坏性操作按钮的按钮添加新视图(再次,这可能会中断)。
虽然与更改UIActionSheet上按钮的颜色没有直接关系,但上一个问题:iPhone Disabling UIActionSheet buttons演示了一些向UIActionSheet添加自定义视图的方法。