iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在iPad中显示带自定义框架的模态视图控制器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在iPad中显示一个带有自定义框架的模态UIViewController,它位于其父视图控制器的顶部.

我尝试使用表单,但据我所知,帧和阴影效果无法更改.

vc.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:cv animated:YES];

我也试过使用一个弹出框,要么我不能居中,要么我无法隐藏箭头.

还有另一种显示模态视图控制器的方法吗?是否可以通过使用表单或弹出窗口解决此问题?

解决方法

没有正式的方法可以执行此操作,但是您可以通过编写自定义视图来获得所需的行为,该视图使引用或委托与其呈现的视图控制器交互并将其添加到视图层次结构中.要真正获得模态感觉,您还可以在“模态”视图下方的呈现控制器上放置透明覆盖.我在很多应用程序中都做到了这一点,它通常很棒.您可能需要制作自定义叠加视图,以便您可以拦截触摸并更优雅地为其演示设置动画.

我透明的叠加层通常是这样的

@protocol TransparentOverlayDelegate <NSObject>

@optional
- (void)transparentOverlayWillDismiss:(TransparentOverlay *)BACkgroundTouch;
- (void)transparentOverlayDidDismiss:(TransparentOverlay *)BACkgroundTouch;
@end


@interface TransparentOverlay : UIView {

    id<TransparentOverlayDelegate> _delegate;
    UIView *_contentView;
    CGFloat _pAlpha;
}

@property(nonatomic,assign) id<TransparentOverlayDelegate> delegate;
@property(nonatomic,retain) UIView *contentView;
@property(nonatomic,assign) CGFloat pAlpha;

- (void)presentTransparentOverlayInView:(UIView *)view;
- (void)dismissTransparentOverlay:(BOOL)animated;

我的自定义模态视图通常是这样的

@protocol ModalViewDelegate <NSObject>
- (void)performSELEctorOnDelegate:(SEL)SELEctor;
@end

@interface ModalView : UIView {
    id<ModalViewDelegate> _delegate;
}

@property(nonatomic,assign) id<ModalViewDelegate> delegate;

在我的呈现视图控制器中,我通常会执行以下操作:

- (void)presentModalController {
    TransparentOverlay *to = [[[TransparentOverlay alloc] initWithFrame:self.view.bounds] autorelease];
    to.delegate = self;

    ModalView *mv = [[ModalView alloc] initWithFrame:CGRectMake(500,500,300,300)];
    mv.delegate = self;

    to.contentView = mv;
    [mv release];

    [to presentTransparentOverlayInView:self.view]; 
}

使用在这两个类上定义的委托给了我几乎开放的访问权限来操纵我的呈现控制器以及我的演示和解雇.唯一的缺点是当它在带有NavigationBar的视图上使用时,因为呈现控制器视图的边界将不包含NavigationBar的界限而使其保持打开以进行交互,有多种方法可以绕过它而不是它们非常漂亮(添加到导航控制器的视图是一个选项).

大佬总结

以上是大佬教程为你收集整理的在iPad中显示带自定义框架的模态视图控制器全部内容,希望文章能够帮你解决在iPad中显示带自定义框架的模态视图控制器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。