How to Place custom view in IOS over another view

前端 未结 3 2018
情书的邮戳
情书的邮戳 2021-01-14 14:08

I want to achieve following custom view over UIViewController . What is the best way to acheive it rather then using addSubview I want to use some thing better.

相关标签:
3条回答
  • 2021-01-14 14:23

    AddSubview for UIAlertView is not possible from iOS 7.

    The only way is to create a custom UIView subclass which can act as UIAlertView.

    The linked one https://github.com/wimagguc/ios-custom-alertview seems to work well. By putting proper version check one can identify to go for native UIAlertView or CustomAlertView.

    0 讨论(0)
  • 2021-01-14 14:29

    Use a Modal presentation with OverFullScreen mode. Set the background of the ViewController's view to transparent and place your custom view in the center of it.

    Easiest would be to use storyboards. Create a view controller with your custom view in the center. Otherwise, you need to call view.addSubView(..) to place your custom view on the center and create the constraints accordingly. To present this view controller you can create a segue or by code presentViewController(...). Don't forget to set the modalPresentationStyle to OverFullScreen.

    No library required.

    0 讨论(0)
  • Try CRToast I have been using it in my project. Create a util class do the config there.

    +(NSDictionary *)setupAlertWithMessage:(NSString *) message withError:(BOOL) error{
        NSDictionary *options;
    
        if(error){
    
            options = @{
                        kCRToastTextKey : message,
                        kCRToastNotificationTypeKey:@(CRToastPresentationTypePush),
                        kCRToastNotificationPresentationTypeKey:@(CRToastPresentationTypePush),
                        kCRToastTextAlignmentKey : @(NSTextAlignmentCenter),
                        kCRToastBackgroundColorKey : [UIColor colorWithRed:234/255.0 green:85/255.0 blue:72/255.0 alpha:1.0],
                        kCRToastAnimationInTypeKey : @(CRToastAnimationTypeSpring),
                        kCRToastAnimationOutTypeKey : @(CRToastAnimationTypeSpring),
                        kCRToastAnimationInDirectionKey : @(CRToastAnimationDirectionTop),
                        kCRToastAnimationOutDirectionKey : @(CRToastAnimationDirectionBottom)
                        };
    
    
        }else{
            options = @{
                        kCRToastTextKey : message,
                        kCRToastNotificationTypeKey:@(CRToastPresentationTypePush),
                        kCRToastNotificationPresentationTypeKey:@(CRToastPresentationTypePush),
                        kCRToastTextAlignmentKey : @(NSTextAlignmentCenter),
                        kCRToastBackgroundColorKey :[UIColor colorWithRed:65/255.0 green:165/255.0 blue:151/255.0 alpha:1.0],
                        kCRToastAnimationInTypeKey : @(CRToastAnimationTypeSpring),
                        kCRToastAnimationOutTypeKey : @(CRToastAnimationTypeSpring),
                        kCRToastAnimationInDirectionKey : @(CRToastAnimationDirectionTop),
                        kCRToastAnimationOutDirectionKey : @(CRToastAnimationDirectionBottom)
                        };
    
        }
    
        return options;
    
       }
    

    Then import your util class where ever you need to then use it this way:

    [CRToastManager showNotificationWithOptions:[MyRateUtil setupAlertWithMessage:@"Alert!" withError:YES/NO]
                                        completionBlock:^{
    
                                        }];
    
    0 讨论(0)
提交回复
热议问题