【问题标题】:iOS7: Hiding and showing of UIView not working correctlyiOS7:隐藏和显示 UIView 无法正常工作
【发布时间】:2015-02-27 07:15:58
【问题描述】:

我的UIViewController 上有一个UIView,它已正确连接

默认也是hidden

这个想法是仅在设置模型属性时才显示视图。代码看起来像

    if (budgetCategoryModel.recurring) {
        [self.recurringView setHidden:NO];
    }

当我检查时,我看到了

但视图根本不会在UIViewController 上呈现,

我遗漏了什么或做错了什么?

【问题讨论】:

  • 您是否单步执行以确认 setHidden 行正在执行?
  • @MikeTaverne,是的,是不是在执行语句,我刚刚重新确认了
  • 如果在storyboard中默认不隐藏,会显示出来吗?
  • 您确定该视图已隐藏吗?也许那个背景颜色的视图是白色的
  • 尝试将 BG 颜色更改为该视图的红色(或任何其他颜色)并致电[self.view bringSubviewToFront:yourView]。这将帮助您进行调试。

标签: ios objective-c iphone ios7 uiview


【解决方案1】:

我刚刚在我的代码中发现了错误。

代码

    if (budgetCategoryModel.recurring) {
        [self.recurringView setHidden:NO];
    }

init 方法中执行。

当我在 viewDidLoad 中执行方法时,我看到了正确的行为

感谢您提出不同的方法。

【讨论】:

    【解决方案2】:

    有时您(或 xCode)在连接 IBOutlets/IBAction 时可能会出错,所以如果它不起作用,您可以删除连接并重新连接,这应该会有所帮助。

    另外Apple推荐是使用weak而不是strong/retain作为IBOutlet属性所以如果你没有充分的理由你应该这样做:

    @property (nonatomic, weak) IBOutlet UIView *yourview;
    

    那么,

    [yourview setHidden:NO];
    
    [yourview setHidden:YES];
    

    这可能对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-06
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 2022-01-22
      • 2017-02-05
      • 1970-01-01
      相关资源
      最近更新 更多