How to hide title/message frame in a UIAlertController?

IosSwiftUialertcontroller

Ios Problem Overview


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!

UIAlertController example

Ios Solutions


Solution 1 - Ios

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?

Solution 2 - Ios

Update Swift 4:

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

Just need to pass nil to title and message params.

Solution 3 - Ios

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

actionController.title = nil
actionController.message = nil

Solution 4 - Ios

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)

Solution 5 - Ios

if you want to remove Alert controller top area space. Add Alert controller height

let height:NSLayoutConstraint = NSLayoutConstraint(item: alert.view, attribute: NSLayoutConstraint.Attribute.height, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 100)
alert.view.addConstraint(height);

enter image description here

Solution 6 - Ios

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];

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionvlinView Question on Stackoverflow
Solution 1 - IosaahrensView Answer on Stackoverflow
Solution 2 - IosHarjot SinghView Answer on Stackoverflow
Solution 3 - IosbeeeView Answer on Stackoverflow
Solution 4 - IosMohsin QureshiView Answer on Stackoverflow
Solution 5 - IosdeepakView Answer on Stackoverflow
Solution 6 - Iostushar lamaView Answer on Stackoverflow