UITableView的子视图永远不会出现

时间:2014-09-11 13:30:00

标签: ios uitableview uiview swift uikit

我正在尝试将子视图添加到UITableView(是的,不是UITableViewCell而是UITableView)。它永远不会显示出来。起初我以为我太早添加它并被细胞覆盖,但事实并非如此。当我已经添加所有单元格时,我尝试将其添加延迟,我尝试将其添加到前面,我尝试将视图添加到tableview的子视图中,但都是徒劳的,它只是从未出现过。这是我的代码:

func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}

override func viewDidAppear(animated: Bool)
{
    super.viewDidAppear(animated)

    func c()
    {
        var v:UIView = UIView(frame:CGRectMake(0.0, 0.0, 40.0, 40.0))
        v.backgroundColor = UIColor.greenColor()
        v.center = CGPointMake(40.0, 40.0)
        tableView!.addSubview(v)
        tableView!.bringSubviewToFront(v)
    }

    delay(5.0, closure: c)
}

有什么想法吗?问题显然与Swift有关,因为在Objective-C中它不会重现

1 个答案:

答案 0 :(得分:1)

第一

我在UITableViewController

中尝试此操作
- (void)viewDidLoad {
    [super viewDidLoad];

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    view.backgroundColor = [UIColor redColor];
    [self.view addSubview:view];
}

它有效

sample

第二

我注意到您添加了CGRectMake(0.0, 0.0, 40.0, 40.0)的视图。因此,如果视图控制器中有一个视图,视图可能位于导航栏下面