菜鸟教程小白 发表于 2022-12-12 15:40:00

ios - 重新定位 UITableView


                                            <p><p>我有一个 ViewController </p>

<ol>
<li> subview (主视图大小的一半)</li>
<li>表格 View (主视图大小的一半)</li>
<li>导航栏按钮</li>
</ol>

<p>单击按钮时,我希望隐藏 subview 并以完整的主视图大小显示表格 View ....它在下面的代码中运行良好,但不是第一次。
当我第一次单击栏按钮时,它会隐藏 subview 并调整表格 View 的大小,但不会在屏幕上显示结果(适用于所有时间)。
如果我在第一次单击导航栏之前滚动表格 View ,它可以正常工作......我认为它与表格 View 加载有关,我无法理解</p>

<p><strong>代码</strong></p>

<pre><code>if(isMapVisible==YES) {
    ;
    [tblView setFrame:CGRectMake(self.view.frame.origin.x,
                                 self.view.frame.origin.y+self.navigationController.navigationBar.frame.size.height+.statusBarFrame.size.height,
                                 self.view.frame.size.width,
                                 self.view.frame.size.height-self.navigationController.navigationBar.frame.size.height-.statusBarFrame.size.height-self.navigationController.tabBarController.tabBar.frame.size.height)];

    isMapVisible=NO;
} else {
    ;
    [tblView setFrame:CGRectMake(mapView.frame.origin.x,
                                 mapView.frame.origin.y+mapView.frame.size.height+1,
                                 mapView.frame.size.width,
                                 mapView.frame.size.height)];

    isMapVisible=YES;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    activityCell *cell = (activityCell*);

    return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 10;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:    (NSIndexPath *)indexPath {
    return 100;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这样调用你的方法</p>

<pre><code>;

-(void)methodToChangeTableViewFrame {

      // Here your code
    if(isMapVisible==YES) {
      ;
      [tblView setFrame:CGRectMake(self.view.frame.origin.x,
                                     self.view.frame.origin.y+self.navigationController.navigationBar.frame.size.height+.statusBarFrame.size.height,
                                     self.view.frame.size.width,
                                     self.view.frame.size.height-self.navigationController.navigationBar.frame.size.height-.statusBarFrame.size.height-self.navigationController.tabBarController.tabBar.frame.size.height)];

      isMapVisible=NO;
    } else {
      ;
      [tblView setFrame:CGRectMake(mapView.frame.origin.x,
                                     mapView.frame.origin.y+mapView.frame.size.height+1,
                                     mapView.frame.size.width,
                                     mapView.frame.size.height)];

      isMapVisible=YES;
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 重新定位 UITableView,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31070355/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31070355/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 重新定位 UITableView