Cin*_*lia 4 iphone objective-c uiviewcontroller modalviewcontroller ios
我正在Xcode 4.6中构建一个iOS 6 iPhone应用程序,我想知道实现以下类型的弹出窗口的最佳方法:

具体来说,右侧的iPhone截图,如果用户点击主窗口中的UIView或部分透明的弹出窗口,会出现更详细的信息 - 例如肖像照片和文本数据 - 但原始视图(这里的照片集)仍然可见,计时器/计数器继续在该视图中滴答作响.
我认为这将是一个可能的解决方案iPhone模态查看较小的屏幕,但它不适合我.上面没有显示的是取消按钮,我也打算将其放入popover中,以便用户可以返回到下面的视图.当计时器到期时,详细视图也会消失.
我应该使用presentModalViewController和演示者/演示方案,还是使用与故事板segue的父子视图关系,或者我应该使用loadNibNamed,还是某种黑客来克服iPhone显示非全屏模式的限制视图?它将覆盖屏幕的大部分,但我想确保下面的视图是可见的并且仍然是活动的,因为它向不在弹出框中的用户提供信息(计时器等).用户不需要与下面的屏幕进行交互,但我希望它部分可见.
我在我的主故事板中将弹出视图设计为单独的视图控制器,而不是作为xib文件.连接和出口由接口构建器到我的代码形成,称为ProfileViewController.
警告:我的术语可能不正确且不准确.弹出窗口或弹出窗口可以是UIView,UIViewController,UIWindow,或者以编程方式解决问题的最佳方法.我并不认为它是某种小部件类型,只要功能反映了我正在寻找的东西.
提前感谢您的建议!
Vai*_*ran 16
你想实现这个目标吗?

以下是viewControllers另外一个不同的两个.vc2是childViewController的vc1用transparent背景.在你的情况下,你可以UILabel用backgroundColor black和放置堆栈的顶部alpha = 0.5.
所有事件vc2都会发生vc2.m.在图像上单击使用此代码:
- (IBAction)imageClick
{
vc2 *viewController = [[vc2 alloc]init];
[self addChildViewController:viewController];
viewController.view.frame = self.view.frame;
[self.view addSubview:viewController.view];
viewController.view.alpha = 0;
[viewController didMoveToParentViewController:self];
[UIView animateWithDuration:0.25 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^
{
viewController.view.alpha = 1;
}
completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
并在vc2.m此基础上viewDidLoad使这viewController透明.
self.view.backgroundColor = [UIColor clearColor];
self.view.opaque = YES;
Run Code Online (Sandbox Code Playgroud)
制作透明视图viewController将使您的代码清晰,因为所有代码都vc2将在一个单独的类中.
编辑
所以,做一两件事,首先添加UIView到您xib这将是一个圆角的边框和框架将是你想按你的截图.
对于圆形边框,您可以使用它category.backgroundColor这UIView将是clearColor:
- (void)setRoundedBorder:(float) radius borderWidth:(float)borderWidth color:(UIColor*)color
{
CALayer * l = [self layer];
[l setMasksToBounds:YES];
[l setCornerRadius:radius];
// You can even add a border
[l setBorderWidth:borderWidth];
[l setBorderColor:[color CGColor]];
}
Run Code Online (Sandbox Code Playgroud)
现在放一个UILabel/UIView/UIImage框架等于UIView上面,alpha为0.5,黑色背景颜色.您可以直接从中执行此操作xib.无需通过代码设置框架.
然后开始将其他控件放入其中 UIView
试试这个
// create a new view
UIView *viewPopup=[[UIView alloc]init];
[viewPopup setBackgroundColor:[UIColor blackColor]];
viewPopup.alpha=0.6f;
// add into window
AppDelegate *appdelgateobj=(AppDelegate *)[[UIApplication sharedApplication]delegate];
[appdelgateobj.window addSubview:viewPopup];
[appdelgateobj.window bringSubviewToFront:viewPopup];
Run Code Online (Sandbox Code Playgroud)
按照以下步骤进行透明视图:
步骤1:

第2步:

可能会有所帮助.
| 归档时间: |
|
| 查看次数: |
35334 次 |
| 最近记录: |