【问题标题】:Check programmatically created UIView visible or not检查以编程方式创建的 UIView 是否可见
【发布时间】:2015-02-26 13:51:14
【问题描述】:
vwInfo = [[UIView alloc]initWithFrame:CGRectMake(20, 85, 280, 100)];
[self.view addSubview:vwInfo];

我在按钮点击时以编程方式创建了一个 UIView。当我再次单击它时,我需要检查 vwInfo 是否可见。我可以使用布尔值来完成此操作。是否有任何其他选项可以做到这一点?

【问题讨论】:

    标签: ios objective-c xcode uiview


    【解决方案1】:

    UIView 可以通过 superview 属性访问

    if([vwInfo superview]!=nil)

    NSLog(@"visible");
    

    其他

    NSLog(@"not visible");
    

    【讨论】:

      【解决方案2】:

      您可以使用isDescendantOfView 检查视图是否存在,但请确保您必须通过vwInfo 的超级视图来检查视图是否已存在。

      if ([vwInfo isDescendantOfView:self.view]) {
          //view already exist in self.view
      }
      else{
         //view is not exist in self.view.
      }
      

      【讨论】:

      • @user3823935 如果答案有帮助,请点赞或将其标记为您问题的答案。
      【解决方案3】:

      您可以通过TagFunctionality 查询。将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");
          }
      }
      

      【讨论】:

        【解决方案4】:

        是不是因为你不想在你已经添加 UIView 的时候再次添加它? 在这种情况下,您可以在 .h(header) 文件中声明 UIView *vwInfo; 然后在您的IBAction 中为您的UIButton

        if(vwInfo == nil) {
           vwInfo = [[UIView alloc]initWithFrame:CGRectMake(20, 85, 280, 100)];
           [self.view addSubview:vwInfo];
        }
        

        【讨论】:

          猜你喜欢
          • 2018-06-04
          • 2022-01-22
          • 1970-01-01
          • 2011-11-17
          • 1970-01-01
          • 2011-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多