【问题标题】:TableView and image circleTableView 和图像圈
【发布时间】:2014-08-24 18:40:33
【问题描述】:

我在 Swift 中有一个标准的 TableView。我想要左边的圆圈图像。这是定义单元格的代码:

 func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {

    var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell

    // Edit image
    println("HEIGHT: " + toString(cell.imageView.frame.size.height)) // PRINTS 0.0 ! Why?
    let imageViewSize = 70 as CGFloat
    cell.imageView.image = self.items[indexPath.row].bgImage // my image UIImage
    cell.imageView.frame.size.height = imageViewSize
    cell.imageView.frame.size.width = imageViewSize
    cell.imageView.layer.cornerRadius = cell.imageView.frame.size.width / 2
    cell.imageView.clipsToBounds = true
 ...

}

所以我得到了左边的图像,但是:在我的情况下(我在情节提要中定义了单元格的高度),如果我为 imageViewSize 设置了 70,我得到了我想要的正确的圆圈,但没有边距下方/上方行的圆圈图像。例如,如果我设置 imageViewSize=50,那么我有一个带圆角的正方形 --> 我会期望一个更小的圆形图像。

我想“玩”一下 imageViewSize 以减小图像的大小,从而增加边距。 我做错了什么?

【问题讨论】:

    标签: image uitableview swift uiimage


    【解决方案1】:

    您不能逐个元素地修改frame 结构体。您必须更改它并重新分配它。

    var frame = cell.imageView.frame
    let imageSize = 70 as CGFloat
    frame.size.height = imageSize
    frame.size.width  = imageSize
    cell.imageView.frame = frame 
    cell.imageView.layer.cornerRadius = imageSize / 2.0
    cell.imageView.clipsToBounds = true
    

    您可能还需要调整 origin.xorigin.y

    如前所述,您最好将UITableViewCell 子类化。

    【讨论】:

    • 使用您的代码,行为是相同的。如果我将 imageSize 更改为 50,则图像现在是带圆角的正方形,不再是圆形(imageSize = 70)。我错过了什么吗?
    • 你一定是。我在 Playground 中对此进行了测试,并且更改图像大小确实会导致另一个大小。解决方案:子类UITableViewCell 并插入您自己的图像视图。原始的UITableViewCell 图像视图有一些像这样的已知怪癖。
    猜你喜欢
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    相关资源
    最近更新 更多