我已经研究了这个问题几个小时,对我来说听起来很简单,但却找不到可行的解决方案。我有一个iPad应用程序,我正在使用UIActionSheet来确认删除。我正在添加标签以增加字体大小。一切看起来都很棒。我还要求在操作表可见时调暗并锁定背景。我可以调暗,但看不到如何锁定背景,以便用户必须在操作表上进行选择以解除它。我已经尝试设置UserInteractionEnabled但它不起作用。任何想法?
// dim the background
UIView *dimViewDelete = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
dimViewDelete.backgroundColor = [UIColor blackColor];
dimViewDelete.alpha = 0.3f;
dimViewDelete.tag = 2222;
[self.view addSubview:dimViewDelete];
if ([self.listArray count] > 0)
{
// create Action Sheet
UIActionSheet * action = [[UIActionSheet alloc]
initWithTitle:@" "
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Delete"
otherButtonTitles:nil];
[action addButtonWithTitle:@"Cancel"];
[action setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
[action showInView:self.view];
// change the font size of the title
CGRect oldFrame = [(UILabel*)[[action subviews] objectAtIndex:0] frame];
UILabel *addTitle = [[UILabel alloc] initWithFrame:oldFrame];
addTitle.font = [UIFont boldSystemFontOfSize:22];
addTitle.textAlignment = UITextAlignmentCenter;
addTitle.backgroundColor = [UIColor clearColor];
addTitle.textColor = [UIColor whiteColor];
addTitle.text = @"Are You Sure?";
[addTitle sizeToFit];
addTitle.frame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y,
oldFrame.size.width, addTitle.frame.size.height);
[action addSubview:addTitle];
}
答案 0 :(得分:2)
您最好的选择是实现自己的自定义操作表控件。
您需要一个简单的视图控制器,它具有两个按钮和一个标签(用于标题)。在弹出窗口中显示视图控制器。使视图控制器模态,只有通过点击其中一个按钮才能解除它。这也会使背景显示为锁定状态。
如果您确实需要调暗背景,请在显示弹出窗口之前,在主窗口中添加一个大小为UIView
的屏幕。将此视图的背景设置为[UIColor whiteColor:0 alpha:0.7]
。根据需要调整alpha以获得正确的调光效果。您甚至可以为视图的alpha设置动画,以便根据需要淡入淡出。