添加子视图,但我啥也没看到 - iOS

Posted

技术标签:

【中文标题】添加子视图,但我啥也没看到 - iOS【英文标题】:Adding subviews, yet I see nothing - iOS添加子视图,但我什么也没看到 - iOS 【发布时间】:2011-01-16 01:04:45 【问题描述】:

我有一个控制器,其中有几个子视图。在代码中的某个位置,我将它们删除,然后再添加它们。这是我用来添加它们的代码:

[self.view addSubview:dateLabel];
[self.view addSubview:tableView];

在这些行之后,我打印出来:

NSLog(@"%@",[self.view subviews]);

我得到的输出是:

"<UINavigationBar: 0x614a8f0; frame = (0 0; 320 48); layer = <CALayer: 0x6129ee0>>",
    "<UILabel: 0x614d500; frame = (0 48; 320 25); text = 'Dec. 15, 2010 - Jan. 15, ...'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x614d570>>",
    "<UITableView: 0x507ee00; frame = (0 73; 320 390); clipsToBounds = YES; layer = <CALayer: 0x9f57930>; contentOffset: 0, 0>"

但是,我在屏幕上看到的唯一内容是导航栏。为什么 label 和 tableView 没有显示,即使它在这里说它是一个 subView?

我也试过在添加子视图后添加以下代码:

[self.view bringSubviewToFront:tableView];
[self.view bringSubviewToFront:dateLabel];

但还是不行。

【问题讨论】:

我认为它们超出了包含视图的范围。如果更改子视图的框架怎么办? ....您能否编辑您的问题,或者提供您实际使用的代码来尝试显示子视图,因为我们可以排除故障并从那里开始指导您。您的视图未显示的原因可能有 100 多种。说明您的视图存在的 NSLog 无助于解释为什么它没有显示在屏幕本身上。谢谢 改变框架也不起作用:( 我更新并发布了用于显示子视图的代码。 您是否尝试过更改子视图的 z 顺序? UIView 中有一个 BringToFront 方法可以做到这一点。 【参考方案1】:

你的控制器是 UIViewController 吗?您是否检查过它是否已正确呈现?例如与 presentModalViewController:self ?

【讨论】:

以上是关于添加子视图,但我啥也没看到 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

为啥我啥也没做,wireshark却从打开就一直在捕捉报文呢?

为啥当我在导航控制器中重置视图控制器的框架时啥也没发生

后端总说他啥也没动,我从线上调了一下测试接口,你再说一句动没动

iOS - Interface Builder - 将元素作为子视图添加到 UIView

iOS 11 - 在 VKSideMenu 中添加子视图时崩溃

win10小娜显示“抱歉我啥也听不见”怎么解决?