当前位置: 首页 > 知识库问答 >
问题:

iOS7 tableview cell.imageview额外填充?

徐皓君
2023-03-14

我有一个桌面视图可以完美地呈现在iOS

共有2个答案

公冶光亮
2023-03-14

我可能有同样的问题,唯一的工作对我来说是设置图像帧:

cell.imageView.frame = CGRectMake( 0, 0, 50, 55 );

如果要对单元格进行子类化,最好:

- (void) layoutSubviews
{
    [super layoutSubviews];
    self.imageView.frame = CGRectMake( 0, 0, 50, 55 );
}
孔永年
2023-03-14

在iOS7中,UITableViewCell的预定义属性ImageView默认情况下向右缩进15pt。
这与以下UITableViewCell属性无关

indentationLevel
indentationWidth
shouldIndentWhileEditing
separatorInset

因此,创建自己的自定义UITableViewCell是克服它的最佳方法。
根据苹果公司的说法,有两种好方法

如果您希望单元格具有不同的内容组件并将其放置在不同的位置,或者如果您希望单元格具有不同的行为特征,则有两种选择:

  • 将子视图添加到单元格的内容视图中。
  • 创建UITableViewCell的自定义子类。

因为你不喜欢子类化UITableViewCell,所以添加自定义子视图是你的选择。

//caution: simplied example
- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //get the cell object
    static NSString *CellIdentifier = @"myCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    //create your own labels and image view object, specify the frame
    UILabel *mainLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 220.0, 15.0)];
    [cell.contentView addSubview:mainLabel];

    UILabel *secondLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 20.0, 220.0, 25.0)];
    [cell.contentView addSubview:secondLabel];
    
    UIImageView *photo = [[UIImageView alloc] initWithFrame:CGRectMake(225.0, 0.0, 80.0, 45.0)];
    [cell.contentView addSubview:photo];
    
    //assign content
    mainLabel.text = @"myMainTitle";
    secondLabel.text = @"mySecondaryTitle";
    photo.image = [UIImage imageNamed:@"myImage.png"];
    return cell;
}

请注意,由于预定义的UITableViewCell内容属性:cell.textlabcell.detailtextlabcell.imageView未被触及,因此它们将提醒nil,并且不会显示。

近距离观察表视图单元格https://developer.apple.com/Library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW1

希望这有帮助!

 类似资料:
  • 我有一个UITabBarController的UITableView。当视图首次显示时,桌面视图在顶部显示额外的填充。当我切换到另一个标签,然后回来。它似乎在正确的位置。 所以我的问题是如何去除这个烦人的填充物,让它远离。 我尝试过的内容(但可能不正确): 取消酒吧等下的选项... 使表标题和视图大小为0.01f,并尝试使用nil和0。 可能还有上千种情况,但我遇到的堆栈溢出最多 问题截图: 问题

  • 我正在使用recyclerview显示来自web服务的图像列表。我正在尝试在CardView小部件的ImageView中显示图像。一切正常。所有图像和列表都正确显示。但当我尝试在Kitkat 4.4.4上运行时,它会在Cardview中的图像顶部和底部显示额外的(大)填充。我只使用ImageView,没有文本,没有任何内容。 检查附加图像。 Cardview的XML代码

  • 我需要在我显示的地图上的标记周围添加额外的填充。 这是到目前为止的代码,但顶部和底部或西部和东部标记在屏幕的边缘。

  • 在iOS 6中,分组表视图的底部似乎有额外的填充(iOS 5没有),但我找不到任何文档表明这是正确的/预期的行为。 这也会影响示例项目,例如TableViewSuite示例中的项目。我想我必须将App委托中的样式更改为分组,并将SDK更新为iOS6,但没有对项目进行其他更改。 调查显示,有保留给页眉和页脚视图,加上一些无法解释的。没有实际的页眉或页脚视图(和为,并且实现和返回例如不做任何事情)。我

  • 我在SwiftUI中有一个InsertGroupedListStyle列表,并注意到iOS 15中添加了额外的顶部填充。如何控制或删除此项? 以下是iOS 14: iOS15:

  • 我试图创建一个包含选项卡和无序列表的布局,该列表垂直扩展到容器高度的100%。我设法让它在Chrome甚至IE11上按预期工作,没有太多麻烦。 然而,火狐似乎有一点古怪,在我的例子中,UL在容器之外扩展了大约20px。 查看Plnkr测试用例 HTML: CSS: 查看Plnkr测试用例