我想知道如何用这样的按钮来创建一个弹出框。

答:

UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: nil 
                                                          delegate: self
                                                 cancelButtonTitle: nil 
                                            destructiveButtonTitle: nil 
                                                 otherButtonTitles: @"Take Photo",
                                                                    @"Choose Existing Photo", nil];

[actionSheet showFromRect: button.frame inView: button.superview animated: YES];

委托对象类中的其他地方..。

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {
         // take photo...
    } 
    else if (buttonIndex == 1) {
         // choose existing photo...
    }
}
athletesssathletesss提问于
工口Miku说唱歌手回答于

类似于其他的回应,但这是很容易实现的比较。

使您的类使用UIActionSheetDelegate。

例子:

@interface ExampleViewController : UIViewController <UIActionSheetDelegate>

然后添加到ExampleViewController.mm/m中

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex  { //Get the name of the current pressed button 
NSString *buttonTitle = [actionSheet buttonTitleAtIndex:buttonIndex]; 
if  ([buttonTitle isEqualToString:@"Remove"]) {
    NSLog(@"Remove this actionSheet"); } 
if ([buttonTitle isEqualToString:@"Button 1"]) {
    NSLog(@"Button 1 pressed"); } 
if ([buttonTitle isEqualToString:@"Button 2"]) {
    NSLog(@"Button 2 pressed"); }
if ([buttonTitle isEqualToString:@"Button 3"]) {
    NSLog(@"Button 3 pressed"); } 
if ([buttonTitle isEqualToString:@"Cancel"]) {
    NSLog(@"Cancel clicked (anywhere away from it)"); } }

现在,在按钮按下的事件中,或者在需要弹出事件的位置/时间,请调用以下命令:

    - (IBAction)aButtonPressed:(id)sender {
     NSString *actionSheetTitle = @"Action Sheet"; // Title 
     NSString *destroyTitle = @"Destroy"; // Button titles
     NSString *button1 = @"Button 1"; 
     NSString *button2 = @"Button 2";
     NSString *button3 = @"Button 3";
     NSString *cancelTitle = @"Cancel"; 
    UIActionSheet *actionSheet = [[UIActionSheet alloc]
                                  initWithTitle:actionSheetTitle
                                   delegate:self
                                   cancelButtonTitle:cancelTitle
                                   destructiveButtonTitle:destroyTitle
                                   otherButtonTitles:button1, button2, button3, nil]; [actionSheet showInView:self.view];
}

更多有关这方面的信息:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIActionSheet_Class/Reference/Reference.html

回答过的其他问题

cos5的静态网站设置怎么设置自定义域名访问?

工口Miku说唱歌手
1,登录 对象存储控制台 ,进入左侧菜单栏【 Bucket 列表】,点击需要配置域名的存储桶(如 example),进入存储桶。 2,单击【域名管理】,进入域名管理页面,单击自定义域名下的【+ 添加域名】按钮,进入可配置状态。 image.png ... 展开详请

求解:文件存储COS 调用 cos.DeleteFolder 删除文件夹 怎么无效?

工口Miku说唱歌手

不能删除存在文件的目录,要先删除文件才能删除目录

5G无线通信与4G的典型区别有哪些?用了哪些新技术?

工口Miku说唱歌手
这个问题的答案还是要先回到5g的三个场景。eMBB, URLLC, mMTC。看看这三个场景就能知道4g和5g的区别了,目前看起来:mMTC可能可以通过NB IOT增强版本实现,也许暂时不会做NR mMTC.其他两个场景需要做一些fundamental的改进增强。 三个场景有一些...... 展开详请

如何通俗的了解kubernetes容器编排?

工口Miku说唱歌手
借此机会,我来讲讲腾讯实现Kubernetes的方案吧 腾讯云容器服务(Tencent Kubernetes Engine,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩...... 展开详请

如何将云主机 迁移到私有网络?

我看到那个默认访问域名是xml的,要怎样才能使用json的访问域名,用javascript sdk?

工口Miku说唱歌手

这个默认域名不用特意去管,上传后会返回完整的URL. 项目中推荐使用js sdk,直传的方式m,个人推荐.

关于作者

所属标签

扫码关注云+社区

领取腾讯云代金券