- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否可以创建一个 ActionSheet
,它在两个按钮之间有一个标签,就像这张图片一样?
最佳答案
编辑 2018
当它可能有用时,我一直在 iOS4 中发布这段代码。从那时起,iOS 开发发展惊人,请不要使用此代码,除非您出于任何原因为 iOS4 编写应用程序!精彩3方库请引用XLR Action Controller满足您对现代操作表的需求!
这当然是可能的,而且我一直喜欢这样做!
首先,制作一个 UIActionSheet
的 @property
(在本例中,我的名称为 aac
——这会派上用场,特别是如果你想通过 UITextFields
调用它。
接下来,在调出操作表的方法中,说一个 -(IBAction)userPressedButton:(id)sender
,创建操作表的本地实例。
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
然后将其添加到您的属性中:self.aac = actionsheet
现在你基本上可以完全控制这个 ActionSheet 中的任何事情,我将给你一个我为最近的项目所做的事情的缩写形式:
- (IBAction)sendDataButtonPressed:(id)sender {
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
self.aac = actionSheet;
UIImageView *background = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"actionsheet_bg.png"]];
[background setFrame:CGRectMake(0, 0, 320, 320)];
background.contentMode = UIViewContentModeScaleToFill;
[self.aac addSubview:background];
UIButton *cancelButton = [UIButton buttonWithType: UIButtonTypeCustom];
cancelButton.frame = CGRectMake(0, 260, 320, 50);
[cancelButton setBackgroundImage:[UIImage imageNamed:@"actionsheet_button.png"] forState: UIControlStateNormal];
[cancelButton addTarget:self action:@selector(cancelButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
cancelButton.adjustsImageWhenHighlighted = YES;
[cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
[cancelButton setTitleColor:[UIColor colorWithRed:0/255.0f green:177/255.0f blue:148/255.0f alpha:1.0f] forState:UIControlStateNormal];
cancelButton.titleLabel.textAlignment = NSTextAlignmentCenter;
cancelButton.titleLabel.font = [UIFont fontWithName: @"SourceSansPro-Light" size: 25];
[self.aac addSubview: cancelButton];
UIButton *emailResultsButton = [UIButton buttonWithType: UIButtonTypeCustom];
emailResultsButton.frame = CGRectMake(25, 12, 232, 25);
[emailResultsButton addTarget:self action:@selector(emailResultsTapped:) forControlEvents:UIControlEventTouchUpInside];
emailResultsButton.adjustsImageWhenHighlighted = YES;
[emailResultsButton setTitle:@"Email Results" forState:UIControlStateNormal];
[emailResultsButton setTitleColor:[UIColor colorWithRed:255/255.0f green:255/255.0f blue:255/255.0f alpha:1.0f] forState:UIControlStateNormal];
[emailResultsButton setTitleColor:[UIColor colorWithRed:0/255.0f green:177/255.0f blue:148/255.0f alpha:1.0f] forState:UIControlStateHighlighted];
emailResultsButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
emailResultsButton.titleLabel.font = [UIFont fontWithName: @"SourceSansPro-Light" size: 20];
[self.aac addSubview: emailResultsButton];
// lots of other buttons...
// then right at the end you call the showInView method of your actionsheet, and set its counds based at how tall you need the actionsheet to be, as follows:
[self.aac showInView:self.view];
[self.aac setBounds:CGRectMake(0,0,320, 600)];
这是发生的情况的图片(记住我在代码示例中省略了所有其他按钮,但它们在此处显示):
现在,如果你想关闭 actionSheet——这取决于你如何设置你的按钮结构,或者可能使用 UIToolBar(很常见)——你可以在按钮的选择器操作中执行以下操作:
-(void)cancelButtonClicked:(id)sender {
[self.aac dismissWithClickedButtonIndex:0 animated:YES];
}
此外,仅供引用,让所有尺寸都适合您的布局需要一点时间,因为您使用的不是 UIViewController 的主 UIView View ,而是 actionSheet 的 View ,因此它具有不同的维度。
我做的一个技巧是使用 UIView 在 Storyboard 中布置 Action 表,然后将您想要的所有对象放入该 UIView 的“ Action 表”中,您应该获得所有图像的准确尺寸。
如果您需要澄清,请告诉我,祝您好运!
关于objective-c - 如何自定义UIActionSheet?苹果系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17946358/
我使用了两个不同的 NSArray 在自定义 TableView 中的两个不同标签中显示数据。如何使用 UIActionSheet(使用 UIActionSheet 的破坏性按钮)从 TableVie
这个问题我真的很困惑。我在我的应用程序中设置了两个 UIActionSheets。它们工作得很好,直到您使用 UIActionSheets 中的取消按钮。 当我离开该页面时,UIAactionShee
有没有办法以编程方式设置 UIActionSheet 的方向?我的 iPhone 方向是纵向,但 UIActionSheet 需要是横向。这可以吗? 编辑: 所以我的问题是我不想将 rootviewc
我正在初始化一个 UIActionSheet,我想从数组、集合或其他内容填充它的“otherButtonTitles”,如下所示 UIActionSheet* aSheet = [[UIActionS
这个问题已经有答案了: iPhone development: How to create colored or translucent background for UIActionSheet? (
他们有什么原因导致我的 UIActionSheet 需要一段时间才能加载吗?它在启动后工作正常,但是一旦我循环执行一些操作一两次,加载速度就非常慢,您可以看到灰色背景爬下来以完成图纸的绘制。 帮忙?
我有一个 uiactionsheet,按钮在我第一次按下或第二次按下时无法正常工作,但在尝试后只有多次。我尝试删除底部的取消按钮并保留按钮标题,但这些步骤都没有解决问题。这是我正在使用的代码: UIA
我正在尝试在我的应用程序中显示 UIActionsheet。它在纵向模式下工作得很好,但当我尝试让它以横向模式显示时,它仍然从底部滑入。但是,它不再像横向模式那样使用按钮并通过选择器控件进行显示。它只
我有一个像这样设置的 UIActionSheet: -(void)trash:(id)sender { UIActionSheet *sheet = [[[UIActionSheet alloc] i
在 Twitterific 应用程序中,有一个看起来像 UIActionSheet 的控件,但它看起来是自定义的。 我想知道如何使用水平行而不是默认垂直行中的按钮来创建具有相似外观和感觉的 View
我们可以更改破坏性按钮和其他按钮在 UIActionSheet 中出现的顺序吗?默认情况下,破坏性按钮(红色)显示在其他按钮上方,在我的应用程序中,我希望其他按钮显示在破坏性按钮上方。 最佳答案 没问
我读了很多相关内容。人们说,当其父级未设置为自动旋转时,它不会自动旋转。我尝试了一切但没有运气。我创建了基于 View 的应用程序(v4.2),并带有一个执行此操作的按钮: UIActionS
在操作表上将按钮设置为破坏性按钮的准则是什么。我的操作表包含两个按钮“取消”和“删除”,点击“取消”将关闭操作表,而点击“删除”将删除所选项目。我应该选择哪一个作为破坏性按钮? 最佳答案 来自类引用:
如何更改 UIActionSheet 按钮的颜色? 最佳答案 iOS 8 (UIAlertController) 如果您使用 UIAlertController,则非常简单。只需更改 UIAlertC
当我运行我的应用程序并单击操作表按钮时,会出现以下内容: Presenting action sheet clipped by its superview. Some controls might n
我想使用 UIActionSheet 来允许用户选择我的 iPhone 应用程序的两种模式之一。所以我不需要显示取消按钮。我只是想问他是否想选择模式一还是模式二。我尝试不添加它,但它不允许我添加,那么
我想要一个子类 UIActionSheet使用 block 方法而不是委托(delegate)。 我的问题是当我在 UIActionSheet 上调用 super 初始化时可变参数 ...在方法结束时
我想知道如何定制这样的 UIActionSheet: 当您按下按钮以显示此 View 时,它确实像 UIActionSheet 一样出现,但老实说,我不太确定他们没有使用包含两个按钮的 UIView
我有一个 iOS6 应用程序,它使用以下代码创建带有时间选择器的 UIActionSheet: - (void)willPresentActionSheet:(UIActionSheet *)acti
我有一个 UIActionSheet 来选择在我的应用程序中使用的时间。选择时间可以正常工作,但是当单击“完成”按钮时,我找不到隐藏操作表的方法。 我的代码是: -(void) showTimespa
我是一名优秀的程序员,十分优秀!