我正在寻找 iPhone 中的弹出框,我想让它像 iOS 5 阅读器功能:
经过一番研究,我发现了 WEPopover 和 FPPopover,但我正在寻找是否有类似这个 API 内置 iphone SDK 的东西。
您可以UIView
使用一些自定义艺术品制作一个,并在您的视图顶部显示一个动画作为“弹出框”,其中包含一些按钮,如下所示:
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(25, 25, 100, 50)]; //<- change to where you want it to show.
//Set the customView properties
customView.alpha = 0.0;
customView.layer.cornerRadius = 5;
customView.layer.borderWidth = 1.5f;
customView.layer.masksToBounds = YES;
//Add the customView to the current view
[self.view addSubview:customView];
//Display the customView with animation
[UIView animateWithDuration:0.4 animations:^{
[customView setAlpha:1.0];
} completion:^(BOOL finished) {}];
如果您想#import <QuartzCore/QuartzCore.h>
使用customView.layer
.
从 iOS8 开始,我们现在可以创建弹出框了,这在 iPhone 上和在 iPad 上是一样的,这对于那些制作通用应用程序的人来说尤其棒,因此不需要制作单独的视图或代码。
您可以在这里获得课程和演示项目:https ://github.com/soberman/ARSPopover
您需要做的就是 subclass UIViewController
,符合UIPopoverPresentationControllerDelegate
协议并设置所需modalPresentationStyle
的delegate
值:
// This is your CustomPopoverController.m
@interface CustomPopoverController () <UIPopoverPresentationControllerDelegate>
@end
@implementation CustomPopoverController.m
- (instancetype)init {
if (self = [super init]) {
self.modalPresentationStyle = UIModalPresentationPopover;
self.popoverPresentationController.delegate = self;
}
return self;
}
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
return UIModalPresentationNone; //You have to specify this particular value in order to make it work on iPhone.
}
然后,在要显示它的方法中实例化新创建的子类,并为 和 分配另外两个sourceView
值sourceRect
。它看起来像这样:
CustomPopoverController *popoverController = [[CustomPopoverController alloc] init];
popoverController.popoverPresentationController.sourceView = sourceView; //The view containing the anchor rectangle for the popover.
popoverController.popoverPresentationController.sourceRect = CGRectMake(384, 40, 0, 0); //The rectangle in the specified view in which to anchor the popover.
[self presentViewController:popoverController animated:YES completion:nil];
你有它,漂亮,整洁的模糊弹出框。