gpt4 book ai didi

xcode - 使弹出窗口在 iOS 5.0 和 iOS 5.1 中看起来相同

转载 作者:行者123 更新时间:2023-12-03 19:15:29 25 4
gpt4 key购买 nike

在 xcode 4.6 中启动 iPad Master-Detail 应用程序时,在纵向模式下,有一个可关闭的菜单(在横向模式下它始终打开)。这个菜单(是 popover 的正确名称吗?)在 iOS 5.0 和 iOS 5.1 中看起来很不一样,见下图:

enter image description here

有没有办法让 5.0 中的弹出窗口看起来与 5.1(及更高版本)中的相同?例如。它占据屏幕的整个高度,没有额外的边框/箭头等。所需的行为以绿色突出显示,iOS5.0 以红色突出显示。

编辑:我尝试使用自定义 popoverBackgroundViewClass 并(用于定位)手动呈现弹出框:

self.masterPopoverController.popoverBackgroundViewClass = [EBPopoverBackgroundView class];
[self.masterPopoverController setPopoverContentSize:CGSizeMake(320, 1004)];
[self.masterPopoverController presentPopoverFromRect:CGRectMake(-20, -40, 1, 1) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];

但它只起到了一点作用:

popoverBackgroundViewClass solution

弹出窗口的左侧和底部有一些我无法删除的规范(我已经尝试过超大弹出窗口,但底部空间并没有消失。我试图将它更多地移动到离开了,但左边的空间并没有消失)。此外,导航栏太细了(大约细了 10 像素),我也无法更改它(尽管我在最后一点上没有那么努力)。最后但同样重要的是,弹出框右侧有一条 1px 的黑线(即使我将 insets 设置为 0)。

我已经实现了这样的背景类:

@interface EBPopoverBackgroundView : UIPopoverBackgroundView
@end

和.m

@implementation EBPopoverBackgroundView {

}

- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
NSLog(@"Init with frame %@", NSStringFromCGRect(frame));
}

return self;
}

- (CGFloat)arrowOffset {
return 0.0;
}

- (void)setArrowOffset:(CGFloat)arrowOffset {
// pass
}

- (UIPopoverArrowDirection)arrowDirection {
return UIPopoverArrowDirectionRight;
}

- (void)setArrowDirection:(UIPopoverArrowDirection)arrowDirection {
// pass
}

+ (CGFloat)arrowHeight {
return 1.0;
}

+ (CGFloat)arrowBase {
return 1.0;
}

+ (UIEdgeInsets)contentViewInsets {
return UIEdgeInsetsMake(0, 0, 0, 0);
}

- (void)drawRect:(CGRect)rect {
NSLog(@"DrawRect %@", NSStringFromCGRect(rect));
[super drawRect:rect];
}


+ (BOOL)wantsDefaultContentAppearance {
return YES;
}


@end

最佳答案

就我的研究而言,除了从头开始将弹出窗口作为一个全新的组件来实现外,没有其他方法可以做到这一点。

关于xcode - 使弹出窗口在 iOS 5.0 和 iOS 5.1 中看起来相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15296349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com