iOS - UITableViewCell由UITabBar覆盖

时间:2011-12-09 04:08:52

标签: ios uitableview

根据下面的屏幕截图,最后一个UITableViewCell的一半被UITabBar覆盖:

enter image description here

我想更改为显示上一个UITableViewCell的完整内容,如下所示,我该怎么做?

enter image description here

由于

已更新

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return [shopSection count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [cc getShopSectionRow:@"hk.xml" sectionForRow:section];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    [cc getShopList:cell withXMLFile:@"hk.xml" withIndexPathSection:indexPath.section withIndexPathRow:indexPath.row];

    return cell;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {   
    return [cc getShopSectionTitle:section];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 50;
}

3 个答案:

答案 0 :(得分:1)

一种方法是使用UIScrollView

中的属性enherit
  

contentInset
  内容视图从封闭滚动视图中插入的距离。   @property(非原子)UIEdgeInsets contentInset
  讨论
  使用此属性可添加到内容周围的滚动区域。单位是点。默认值为UIEdgeInsetsZero。

使用该属性,您可以通过UITabBar的高位插入表视图。

OR

您可以将UITableView的框架更改为不在UITabBar下

OR

您能告诉我们如何设置UITableViewController和UITabBarController吗? 那里可能存在问题。


当你说under时,你的意思是这样的:

UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
UITableViewController *tt = [[TableTest alloc] initWithNibName:@"TableTest" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, tt, nil];

将UIViewControllers放入UITabBarController?因为我测试了该代码并且它正常工作。

因为如果你真的意味着,就像你的UITableViewController不在self.tabBarController.viewControllers并且在taBar下面,你将不得不使用我原来答案中的一个选项。

答案 1 :(得分:0)

您可以动态调整UITableView的高度,如类似问题所述:UITableView partially hidden by UITabBar

答案 2 :(得分:0)

将TableView的高度降低44点,假设您已经在loadView中以编程方式创建了tableView,然后在CGRectMake(0,0,320,460)中将460高度更改为416或在Interface Builder xib文件中。减少44点。 TabBar叠加在tableView的顶部,因此最后一个单元格似乎与tabbarcontroller重叠。