我正在研究swift 3中的一个项目,我在UILabel内部设置了一个UITableViewCell内的背景图像。图像由渐变颜色组成,其边缘具有淡化效果。一旦我因为某些原因在我的代码中设置了这个,渐变颜色似乎只出现在标签的一侧(左侧)。也许它没有经过适当调整以适应UILabel。如何将图像设置为适当的标签大小,帮助将非常感激。我的代码如下:我错过了什么
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.row {
case 0:
let cell = tableView.dequeueReusableCell(withIdentifier: "FeaturedCell", for: indexPath)
cell.bounds = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: cell.bounds.height)
return cell
case (1...3):
let text = self.categorySelectionTitles[indexPath.row - 2]
let cell = tableView.dequeueReusableCell(withIdentifier: "AudioCell",for: indexPath)
let labe = cell.viewWithTag(TABLE_CELL_TAGS.headerLabel) as! UILabel
labe.backgroundColor = UIColor(patternImage: UIImage(named: "headerBar")!)
labe.bounds = CGRect(x: 0, y: 0, width: cell.frame.width, height: cell.frame.height)
Utils.setTableCellLabelText(cell: cell, labelTag: 501, text: text)
return cell
}
如上图所示,渐变的右侧不存在。下面的图片如下所示。
答案 0 :(得分:1)
你可以使用autolayout而不是像这样的帧:
labe.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
labe.leftAnchor.constraint(equalTo: cell.leftAnchor),
labe.rightAnchor.constraint(equalTo: cell.rightAnchor),
labe.topAnchor.constraint(equalTo: cell.topAnchor),
labe.bottomAnchor.constraint(equalTo: cell.bottomAnchor),
])
您希望尝试确保仅添加约束一次。
或使用面具:
labe.autoresizingMask = [.flexibleWidth, .flexibleHeight]