自定义TableViewCells在静态和动态时显示不同

时间:2014-01-27 15:15:26

标签: ios objective-c uitableview storyboard

Here是我的自定义静态表视图。

布局是:

- Table View (grey background)
    - Table View Section
        - Table View Cell (default background)
            - Content View (grey background)
                - View (white background)
                    - Label

Here是我的自定义动态表视图。

布局是:

- Table View (grey background)
        - Table View Cell (default background)
            - Content View (grey background)
                - View (white background)

这两个都是在Storyboard中创建的。

游戏的目的是让动态游戏看起来像静态游戏(我稍后会对字体进行整理)。正如您所看到的那样,动态的当前“溢出”每个方向都有白色,只留下角落所需的灰色。

以下是我的动态表视图的cellForRowAtIndexPath。如果您需要更多代码,请与我们联系。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier =@"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    cell.textLabel.text=[[self.responseArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    return cell;

}

更新

在添加以下评论中建议的Autolayout约束后,我的动态视图现在看起来像this

1 个答案:

答案 0 :(得分:1)

只需使用确保启用AutoLayout,然后将白色视图的前导和尾随约束设置为它的容器。

对我来说,制作约束的最佳方法是控制 - 拖动Interface Builder左侧的对象轮廓。控制 - 从白色视图拖动到它的容器,按住shift并选择前导和尾随,然后输入。然后,您可以在属性检查器中编辑约束,例如20点偏移。

对于中间的垂直白色条纹,它可以是单元格背景本身,也可以是tableview。尝试更改树中每个对象的背景颜色以确定它是哪一个。然后,您可以将其背景设置为清除。