How to hide title/message frame in a UIAlertController?

余生长醉 提交于 2019-11-30 11:17:00

问题


When using a UIAlertController, if I want to present a UIActionSheet with an empty title and an empty message, the frame for the expected placement of the title and/or message remains.

How do I change this so that I only present an ActionSheet that reads:

Settings
Sign out
Cancel ?

Thanks!


回答1:


When I create a UIAlertController with this code I don't have the title spacing.

[UIAlertController alertControllerWithTitle:nil
                                    message:nil
                             preferredStyle:UIAlertControllerStyleActionSheet];

Are you passing in nil for the title and message or empty strings?




回答2:


Update Swift 4:

let alert = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.actionSheet)

Just need to pass nil to title and message params.

Thanks




回答3:


If you want to change in run time depending on a certain case just write:

actionController.title = nil
actionController.message = nil




回答4:


In swift 2.2, you can use code below and I have also changed the color of signout action button

        let actionSheet: UIAlertController = UIAlertController(title: nil, message: nil, preferredStyle: .ActionSheet)

    self.presentViewController(actionSheet, animated: true, completion: nil)

    let settingsActionButton: UIAlertAction = UIAlertAction(title: "Settings", style: .Cancel) { action -> Void in
        print("Settings Tapped")
    }

    reportActionSheet.addAction(settingsActionButton)

    let signOutActionButton: UIAlertAction = UIAlertAction(title: "Signout", style: .Default)
    { action -> Void in
        //Clear All Method
        print("Signout Tapped")

    }

    signOutActionButton.setValue(UIColor.redColor(), forKey: "titleTextColor")

    actionSheet.addAction(signOutActionButton)

    let cancelActionButton: UIAlertAction = UIAlertAction(title: "Cancel", style: .Cancel) { action -> Void in
        print("Cancel Tapped")
    }

    reportActionSheet.addAction(cancelActionButton)



回答5:


UIAlertController *controller=[UIAlertController alertControllerWithTitle:@"" message:@"" preferredStyle:UIAlertControllerStyleAlert];//style check

UIAlertAction *first = [UIAlertAction actionWithTitle: @"Login with Facebook" style: UIAlertActionStyleDefault handler:^(UIAlertAction *action)
{
   //write to perform action

}];


[controller addAction: first];



UIAlertAction *second = [UIAlertAction actionWithTitle: @"Guest User" style: UIAlertActionStyleDefault handler:^(UIAlertAction *action)

{ //write to perform action

}];

[controller addAction:second];


UIAlertAction *third=[UIAlertAction actionWithTitle:@"Registered User" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action)


{
    //write to perform action

}];

[controller addAction:third];

[self presentViewController: controller animated: YES completion: nil];


来源:https://stackoverflow.com/questions/29777342/how-to-hide-title-message-frame-in-a-uialertcontroller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!