我有一个表视图,我需要在节头中显示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
答案 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
}