如何显示容器视图视图控制器和隐藏容器视图视图控制器
I want to show ContainerView's view controller as like this如何显示容器视图视图控制器和隐藏容器视图视图控制器
我使用下面的代码,它显示了,因为我想
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.8];
if (_addLinkQuestionView.isHidden == YES)
{
_addLinkQuestionView.hidden = NO;
_addLinkQuestionView.alpha = 1.0;
}
else
{
_addLinkQuestionView.alpha = 0.0;
_addLinkQuestionView.hidden = YES;
}
[UIView commitAnimations];
但在上罗嗦区域点击,我想隐藏容器视图。该区域是UIButton。我使用下面的代码,但它什么都不做。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.8];
_addLinkQuestionView.alpha = 0.0;
_addLinkQuestionView.hidden = YES;
[UIView commitAnimations];
任何帮助。提前Thanx。
基本上,您似乎需要显示一个alertview行为,其中应用程序的所有ui被禁用,而仅启用对话框中的内容。 (UIView的*)V到应用程序委托
- 添加公共方法类似showOverlayView。
- 现在将传递的视图添加到keywindow并计算并设置其中心属性 。
或者,您可以使用像MJPopupViewController或SLPopupViewController这样的库为您完成这项工作。
你是否解释你的观点我无法要做到这一点。 –
这个图像有你给https://camo.githubusercontent.com/02c924c29bfaed3a0b54f64438d59adb8e166d68/68747470733a2f2f7261772e6769746875622e636f6d2f6d617274696e6a756861737a2f4d4a506f70757056696577436f6e74726f6c6c65722f6d61737465722f6173736574732f64656d6f322e706e67 MJPopupViewController是使用该库的要求。 或者在您的容器视图中添加tapGestureRecognizer以实现相同。 –
是的。完全如你所示,但没有第三方整合。 –
这样做的正确方法:
1-新建文件 - > UIView的 - >重命名为addLinkQuestionView
2 - 新文件 - > OBJ C类 - >重命名为addLinkQuestionView
现在u有一个厦门国际银行,一.H和.M
3-转到厦门国际银行和文件的所有者选择addLinkQuestionViewü步骤创建2
4-设计厦门国际银行作为您发布的图片链接,并连接起来,适当的网点addLinkQuestionView.h
5为了您的UIView初始化中的.h这样做:#进口 “addLinkQuestionView.h”
@implementation addLinkQuestionView
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
// Initialization code.
[[NSBundle mainBundle] loadNibNamed:@"addLinkQuestionView" owner:self options:nil];
self.vuComplete.frame = CGRectMake(self.vuComplete.frame.origin.x, self.vuComplete.frame.origin.y, self.frame.size.width, self.frame.size.height);
[self addSubview:self.vuComplete];
self.vuContainer.layer.cornerRadius = 5.0;
self.vuContainer.layer.borderWidth = 1.0/[UIScreen mainScreen].scale;
self.vuContainer.layer.borderColor = [[UIColor clearColor]CGColor];
self.vuContainer.alpha = 0.0;
[self layoutIfNeeded];
}
return self;
}
-(void)awakeFromNib
{
}
- (IBAction)onBackgroundTapDismissView:(id)sender {
[UIView animateWithDuration:0.5
animations:^{self.vuContainer.alpha = 0.0;}
completion:^(BOOL finished){ }];
[self removeFromSuperview];
}
注: - (IBAction为)onBackgroundTapDismissView可以一个完成在您的addLinkQuestionView的灰背景的UIView丢弃uitapgesturerecognizer,这样点击它可以关闭整个的UIView(vuComplete)
6-然后在您的主视图控制器添加此那就是像这样呈现这样的弹出是: A-导入addLinkQuestionView.h首先 B-将此代码添加到您的按钮操作中,然后单击以呈现addLinkQuestionView: addLinkQuestionView * popup = [[addLinkQuestionView alloc] initWithFrame:CGRectMake(0,0,self.view .frame.size.width,self.view.frame.size.height)];
[UIView animateWithDuration:0.25
animations:^{popup. addLinkQuestionView.alpha = 1.0;}
completion:^(BOOL finished){ }];
[self.view addSubview:popup];
玩得开心!
如何使用ViewController而不是xib。我已经为图中显示的容器设计了视图控制器。 –
使用带动画的presentViewController函数 – Harris
你有什么容器?一个UIViewController实例或一个带.h和.m的xib? – Harris
请确保第二个代码部分正在执行,同时通过放置一个断点或一个'NSLog'来轻击模糊区域 –
基本上,你想要的是在点击背景时关闭带有动画的弹出窗口吗? – Harris