uitableview 中的 Uilabel 在调试模拟器颜色混合层中不显示不透明且不透明
Posted
技术标签:
【中文标题】uitableview 中的 Uilabel 在调试模拟器颜色混合层中不显示不透明且不透明【英文标题】:Uilabel in uitableview not showing opaque without transparency in debug simulator color blended layers 【发布时间】:2017-11-28 22:46:49 【问题描述】:这是我的代码,找不到这是怎么回事。对于 lbl_nombre 来说没问题。但是 lbl_desc 我得到的输出是启用了 sim 颜色层上的透明通道。
-- 编辑--我做了另一次检查,因为在代码中一切看起来都很好,并且知道它是如何发生的,但这不应该发生这种情况,只要描述中有一个带有重音的单词,例如 á ó í 它正在发生,对于其他单词,例如拉丁语中的ñ 表现正常。那么如果我使用任何重音符号设置它,uilabel 怎么会转动 alpha 通道/透明度?有什么解决办法吗? -- 编辑 -- 包括 MenuViewCell
class MenuViewCell: UITableViewCell
@IBOutlet var lbl_nombre : UILabel!
@IBOutlet var lbl_desc : UILabel!
@IBOutlet var lbl_precio : UILabel!
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let data = self.sections[(indexPath as NSIndexPath).section].items[(indexPath as NSIndexPath).row]
let cell : MenuViewCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! MenuViewCell
cell.lbl_desc.numberOfLines = 0
cell.lbl_nombre.numberOfLines = 0
cell.lbl_nombre.text = data.name
cell.lbl_desc.text = data.desc
cell.lbl_desc.isOpaque = true
cell.lbl_desc.backgroundColor = .white
var finalprice = ""
if (data.price > 0)
finalprice = "RD$\(data.price!)"
cell.lbl_precio.text = "\(finalprice)" as String
cell.lbl_nombre.lineBreakMode = NSLineBreakMode.byWordWrapping
cell.lbl_desc.lineBreakMode = NSLineBreakMode.byWordWrapping
cell.lbl_nombre.sizeToFit()
cell.lbl_desc.sizeToFit()
return cell
【问题讨论】:
你能显示MenuViewCell
吗?我认为问题出在标签下方
@trungduc 非常感谢您与我们联系,我认为代码也有问题,但是.. 现在我已经测试了更多。问题在于,一旦某些传入文本具有í,特别是。我只是在没有来自 json 的数据设置的情况下手动测试它,í 给我带来了麻烦.. cell.lbl_desc.text = "hola prueba \n multiline í \n ok" // data.desc
@trungduc 编辑并添加了 menuViewCell。还仔细检查了情节提要,(3 个标签)
是的,你是对的。问题是因为í
字符。很奇怪。
是的。这太烦人了..三倍检查..ó没问题。 í 繁荣混乱.. 它发生在 ios 11.2 上
【参考方案1】:
要解决此问题,您应该将标签的layer.masksToBounds
设置为true
。
cell.lbl_desc.layer.masksToBounds = true
【讨论】:
非常感谢!它确实奏效了! .您是否知道通过任何更改如何使disclosureDetail图标不透明? :D 无需为单元格的 accesorytype 设置自定义视图.. 你的意思是改变公开细节图标的不透明?或者去掉上面的颜色混合层 去掉上面的颜色混合层:D 我认为为accessoryView
使用自定义视图是最简单的方法。但无论如何,accessoryView
上的颜色混合层如果保留它不会有太大影响:D。以上是关于uitableview 中的 Uilabel 在调试模拟器颜色混合层中不显示不透明且不透明的主要内容,如果未能解决你的问题,请参考以下文章
如何使 UILabel 看起来像 UITableView 中的节标题一样蚀刻
UITableCell 中的 UILabel 大小不正确,直到 UITableView 滚动
如何使自定义单元格中的 UILabel 显示保存在 UITableView 中的更改