无法使用 CGRectMake 隐藏视图控制器内的视图
Posted
技术标签:
【中文标题】无法使用 CGRectMake 隐藏视图控制器内的视图【英文标题】:Cannot hide a view inside View controller with CGRectMake 【发布时间】:2013-08-13 18:13:57 【问题描述】:我在我的视图控制器上使用了一个 UIView 项目,它包含一个选择器视图和一个按钮,只有在单击显示按钮时才需要出现在屏幕上。
我为我的 UIView 创建了一个名为 *pickerView 的插座
这个视图的默认位置(在 Xcode 的右侧属性栏上)是 (0,200,320,261) for (x,y, height and width) 这基本上使它出现在 ViewController 的底部。
我在视图控制器加载时最初隐藏这个视图所做的事情是,在 ViewDidLoad 方法中我输入了这段代码:
pickerView.frame=CGRectMake(0,450,320,261);
对于显示按钮的动作,
pickerView.frame=CGRectMake(0,200,320,261);
我在这个 UIView 中有一个隐藏按钮,在它的操作中我有
pickerView.frame=CGRectMake(0,450,320,261);
所以,从我运行应用程序时的预期来看,UIView pickerView 最初应该因为 viewDidLoad 中的代码而隐藏,并且显示按钮应该将它带到屏幕上。 我的问题是显示和隐藏按钮工作正常,但是每次我加载这个 ViewController 时,默认情况下视图都会出现在屏幕上。当我加载 viewController 时帮助我隐藏这个 UIView。
【问题讨论】:
【参考方案1】:Simpley 不设置选取器视图的框架 我发布了一个示例代码,它使选择器视图在点击按钮时隐藏并出现 我正在使用“隐藏”属性 听到是示例代码
- (void)viewDidLoad
[super viewDidLoad // Do any additional setup after loading the view, typically from a nib.
//as simple dont set frame.
// i am using xib from there i wired up picker view
self.myPickerView.hidden = YES; //just hide it whenever you dont use it.
- (IBAction)whenShowHideButtonTapped:(id)sender
//when button pressed just show it
if(self.myPickerView.hidden)
self.myPickerView.hidden = NO;
else
self.myPickerView.hidden = YES;
希望这会有所帮助.. :)
【讨论】:
【参考方案2】:您可以像这样调用“viewWillAppear:”中的隐藏代码:
- (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
[self hidePicker];
【讨论】:
以上是关于无法使用 CGRectMake 隐藏视图控制器内的视图的主要内容,如果未能解决你的问题,请参考以下文章
在网格视图中的 ASCX 控件内的控件上使用 Javascript 显示隐藏。 (ASP.NET + Javascript)