如何在IOS上将自定义视图放在另一个视图上

时间:2015-05-06 06:22:10

标签: ios objective-c custom-action

我希望在$('input[type="text"]').on('input', function() { var isValid = true; $('input[type="text"]').each(function() { if ( $(this).val() === '' ) isValid = false; }); if (!isValid) $('input[type="submit"]').attr('disabled','disabled'); else $('input[type="submit"]').removeAttr('disabled'); }); 上实现以下自定义视图。什么是实现它而不是使用addSubview的最好方法我想更好地使用一些东西 我以前使用过以下但我想现在更好地使用一些东西

UIViewController

enter image description here

我使用https://github.com/wimagguc/ios-custom-alertview实现了代码。

我不喜欢使用库,因此如何在另一个[self.view addSubview:NotConnected.view]; [self.view removeFromSuperview]; 上自定义UIViewController,如上图所示。我用

UIViewController

要从超级视图中删除我已使用

- (IBAction)ContinueToPayment:(id)sender {

    PayByVC *Newpage = [[PayByVC alloc] initWithNibName:@"PayByVC" bundle:nil];
    Newpage.checkOutInfoDict=checkOutDict;
    Newpage.modalPresentationStyle   = UIModalPresentationOverCurrentContext;
    Newpage.modalTransitionStyle     = UIModalTransitionStyleCrossDissolve;
    Newpage.view.backgroundColor     = [[UIColor blackColor] colorWithAlphaComponent:.4];
    Newpage.delegate = self;
    [self presentViewController:Newpage animated:YES completion:nil];


}

如何在所有类型的屏幕方向上将付费视图放在屏幕中央

3 个答案:

答案 0 :(得分:2)

使用OverFullScreen模式的模态演示文稿。将ViewController视图的背景设置为透明,并将自定义视图放在其中心。

最简单的方法是使用故事板。在中心创建一个包含自定义视图的视图控制器。否则,您需要调用view.addSubView(..)将自定义视图放在中心并相应地创建约束。 要显示此视图控制器,您可以创建segue或按代码presentViewController(...)。别忘了将modalPresentationStyle设置为OverFullScreen

不需要图书馆。

答案 1 :(得分:1)

iOS 7无法实现UIAlertView的AddSubview。

唯一的方法是创建一个可以充当UIAlertView的自定义UIView子类。

链接的https://github.com/wimagguc/ios-custom-alertview似乎效果很好。通过进行适当的版本检查,可以识别出本机UIAlertView或CustomAlertView。

答案 2 :(得分:1)

试试CRToast我一直在我的项目中使用它。创建一个util类在那里做配置。

+(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;

   }

然后在您需要的地方导入您的util类,然后以这种方式使用它:

[CRToastManager showNotificationWithOptions:[MyRateUtil setupAlertWithMessage:@"Alert!" withError:YES/NO]
                                    completionBlock:^{

                                    }];