vwInfo = [[UIView alloc]initWithFrame:CGRectMake(20, 85, 280, 100)];
[self.view addSubview:vwInfo];
我在按钮上以编程方式创建了一个UIView。当我再次单击它时,我需要检查vwInfo是否可见。我可以使用布尔值来完成此操作。还有其他选项可以执行此操作吗?
答案 0 :(得分:1)
您可以使用isDescendantOfView
检查视图是否存在,但请确保您必须通过vwInfo
的超级视图检查视图是否已存在。
if ([vwInfo isDescendantOfView:self.view]) {
//view already exist in self.view
}
else{
//view is not exist in self.view.
}
答案 1 :(得分:0)
是不是因为您不想在已经添加UIView时第二次添加UIView?
在这种情况下,您可以在.h(标题)文件UIView *vwInfo;
中声明
然后在IBAction
中UIButton
:
if(vwInfo == nil) {
vwInfo = [[UIView alloc]initWithFrame:CGRectMake(20, 85, 280, 100)];
[self.view addSubview:vwInfo];
}
答案 2 :(得分:0)
您可以查看Tag
Functionality
。将tag
分配给view
。
UIView * vwInfo = [[UIView alloc]initWithFrame:CGRectMake(20, 85, 280, 100)];
[vwInfo setTag:101];
[self.view addSubview:vwInfo];
在Button Click
- (void)buttonClick :(id)sender {
UIView * viewTemp = (UIView *)[self.view viewWithTag:101];
if(viewTemp){
NSLog(@"View is available");
if([viewTemp isHidden]){
NSLog(@"Your view is hidden");
}else{
NSLog(@"Your view is visible");
}
}else{
NSLog(@"View is not added yet");
}
}
答案 3 :(得分:0)
可以使用superview属性
访问UIViewif([vwInfo superview]!= nil)
NSLog(@"visible");
否则
NSLog(@"not visible");