不更新 subView 的 UIView?

Posted

技术标签:

【中文标题】不更新 subView 的 UIView?【英文标题】:Not updating UIView of subView? 【发布时间】:2013-05-03 11:34:30 【问题描述】:

我已经发布了“HERe”。

和Here actually What I need to Deserve

如果我将这部分代码 [self loadLocationView] 放入 UIButton and ViewDidLoad method , It works fine here.

但每当我从 TableVeiw 选择一个位置并从 configureViewSlider 方法调用时,它会被调用到方法 loadLocationView 但不更新 UI。 到目前为止,我在这里尝试过。

-(void) configureViewSlider


    if (_detailItem) 
        Location=[_detailItem description];
        //[self performSelectorOnMainThread:@selector(btnLocations:) withObject:nil  waitUntilDone:false];
        //[btnLocations sendActionsForControlEvents:UIControlEventTouchDown];

      //  [self loadLocationView];
     [self performSelectorOnMainThread:@selector(loadLocationView) withObject:nil waitUntilDone:NO];
        //[self loadView];
        NSLog(@"Location %@", Location);

    



-(void) loadLocationView

    _viewLocBangalore.frame= CGRectMake(10, 10, 303,255);
    [self.view  addSubview:_viewLocBangalore];

    // [self.View bringSubviewToFront:_viewlocBangalore];
    //[_viewLocBangalore setNeedsDisplay];


我还需要做什么才能实现它。我已经尝试了所有可能的方式。但没用。

请至少提出一些建议,我已经准备好以任何值得我的任务的方式进行处理(即。我添加了一个 UITableVieContrller ,它具有位置,当用户触摸 Location 时,UIView 应该更新)。

【问题讨论】:

通过放置断点检查一次您的 loadLocationView 方法是否在主线程中被调用。 是的,我也在问题中提到过。甚至它正在调用并打印 Log 值。 ok,一次尝试直接放视图,不用过渡动画。 你能告诉我这是什么意思吗[ViewLocations removeFromSuperview]; self.ViewLocations=nil;它会影响任何地方吗? 好的,我刚刚关注并只放置了相关的 SubView 。什么都没发生。如果我从 ViewDidLoad 调用此功能,则可以正常工作。 【参考方案1】:

为什么你调用configureViewSlider方法然后loadlocationview方法直接位置选择tableview方法添加这个视图: _viewLocBangalore.frame= CGRectMake(10, 10, 303,255); [self.view addSubview:_viewLocBangalore];

【讨论】:

为了理解目的。但即使它仍然无法正常工作。 检查子视图 NSLog(@"subView:%@",[self.view subviews]);

以上是关于不更新 subView 的 UIView?的主要内容,如果未能解决你的问题,请参考以下文章

UIStackView:从xib加载视图和更新subView的高度约束没有反映任何变化?

如何更新 UIView 的图层属性并为其子视图保留图层?

UIView subView alpha 动画不起作用

NSView如何实现类似于UIView中的clipsToBounds功能(即不切割其SubView)

将 UIView 作为 SubView 添加到自定义类、UIView 的子类、Swift

UIView.subviews 和 [NSView subviews] 之间的行为差​​异