我制作了一个像这样的ActionSheet:
现在我想要更改颜色+ "ProfilesDisplay.xml"
和Cancel
,让他们觉得它们是Delete
。
我可以更改所有按钮的颜色,但不能更改个人。
我尝试过使用类别但我仍然disabled
warining
ActionSheet
Depreciated
。而且代码也不起作用。
我写了这段代码:
- (void)setButton:(NSInteger)buttonIndex toState:(BOOL)enabled {
for (UIView* view in self.subviews)
{
if ([view isKindOfClass:[UIButton class]])
{
if (buttonIndex == 0) {
if ([view respondsToSelector:@selector(setEnabled:)])
{
UIButton* button = (UIButton*)view;
button.enabled = enabled;
}
}
buttonIndex--;
}
}
}
是否可以通过Action sheet
为AlertViewController
提供的部分按钮提供禁用外观。
以下是我提供行动表的代码:
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:@"Action Sheet" message:@"Using the alert controller" preferredStyle:UIAlertControllerStyleActionSheet];
[actionSheet.view setTintColor:[UIColor redColor]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// Cancel button tappped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Delete" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// Distructive button tapped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Group 1" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// Distructive button tapped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// OK button tapped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
// Present action sheet.
[self presentViewController:actionSheet animated:YES completion:nil];
答案 0 :(得分:4)
您可以使用setEnabled
的{{1}}属性。
这会将您的按钮渲染为“灰色”。
我修改了一段代码以包含此更改:
UIAlertAction
当然,禁用后无法点击按钮。
其他选项涉及使用UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// OK button tapped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}];
[action setEnabled:NO];
[actionSheet addAction:action];
。
有三个:
UIAlertActionStyle
UIAlertActionStyleDefault,
UIAlertActionStyleCancel,
UIAlertActionStyleDestructive
将使用UIAlertActionStyleDefault
呈现您的按钮。
tintColor
会在表格底部呈现您的按钮。
UIAlertActionStyleCancel
使用“红色”呈现您的按钮。 (想一想:删除按钮)
答案 1 :(得分:1)
获取actions数组并更改所需操作的状态。 这样,即使添加动作,您也可以更改状态。
以下是示例代码。
NSArray* actionlist = actionSheet.actions;
UIAlertAction * action2 = [actionlist objectAtIndex:1];
action2.enabled = false;
// Present action sheet.
[self presentViewController:actionSheet animated:YES completion:nil];