如果我使用圆形图像,图像不会显示在imageView中

时间:2016-10-06 06:17:15

标签: ios layout uiimageview layer cornerradius

我有一个表视图,我需要在节头中显示author_img。在ViewForSectionHeader方法中,我想使图像为圆形。但是,如果我这样做,那么无论是在模拟器还是在真实设备中,图像都不会显示。如果我删除代码,uiimageview将正常显示图像。我为uiimageview设置了宽度和高度约束,因为我想获得显示图像的固定大小。那么有什么想法吗?

    cell.author_img.layer.cornerRadius =  cell.author_img.frame.size.width/2
    cell.author_img.layer.masksToBounds = true
    //  add a boundary for thumb
    cell.author_img.layer.borderWidth = 1.5
    cell.author_img.layer.borderColor = UIColor.whiteColor().CGColor

2 个答案:

答案 0 :(得分:0)

这可能是因为您过早地设置了cornerRadius,author_img的最终大小尚未确定。 当您确定完全计算了单元格的布局时,尝试设置cornerRadius。

出于测试目的,只是为了确保它来自此行为,尝试对cornerRadius进行硬编码。

cell.author_img.layer.cornerRadius = 10

如果你的图片有一个轻微的cornerRadius,这意味着问题来自我之前解释的问题,如果它仍然没有显示,它来自其他东西。

如果它确实来自图像尺寸不固定的事实,请尝试将cornerRadius设置为viewDidAppear,我的意思是你可以做的最新事。

答案 1 :(得分:0)

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

        let headerView : UIView = UIView.init(frame: CGRectMake(0, 0, tableView.frame.size.width, 40))
        headerView.backgroundColor = UIColor(red: 75/255.0, green: 193/255.0, blue: 210/255.0, alpha: 1.0)
        let iconimage: UIImageView = UIImageView(frame: CGRectMake(10, 0, 40, 40))
        iconimage.image = UIImage(named: "original.jpg")
        iconimage.layer.cornerRadius = iconimage.frame.size.height / 2
        iconimage.layer.borderColor = UIColor.whiteColor().CGColor
        iconimage.layer.borderWidth = 1.0
        iconimage.clipsToBounds = true

        let subjectNameLabel = UILabel(frame: CGRect(x: 60, y: 4, width: 250, height: 35))
        subjectNameLabel.textAlignment = NSTextAlignment.Center
        subjectNameLabel.font = UIFont (name: "HelveticaNeue", size: 16)
        subjectNameLabel.textColor = UIColor.whiteColor()
        headerView.userInteractionEnabled = true

        if isFristtime == true {
            let subjectNameTxtValue = "Mile Ho Tum Humko"
             subjectNameLabel.text = subjectNameTxtValue
        }else{
            let subjectNameTxtValue = "Saiyaan"
             subjectNameLabel.text = subjectNameTxtValue
        }




        subjectNameLabel.backgroundColor = UIColor(red: 75/255.0, green: 193/255.0, blue: 210/255.0, alpha: 1.0)
          headerView.addSubview(iconimage)
        headerView.addSubview(subjectNameLabel)

        return headerView
    }


func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 40
    }