如何在对焦自定义UITableCell时删除类似白色的薄边框?
(说实话,它与单元格的边界无关,我已经尝试修改边框的颜色以查看)
这似乎只有在我通过故事板离开表格单元格的默认焦点样式时才会发生,当我删除单元格上的默认焦点动画时,不会出现白色边框(但是我必须实现自己的自定义动画..)
我试图用不同的颜色和色调来玩,但这似乎不起作用。
以上gif显示聚焦特定UITableCell时出现的白色边框
我的UITableViewController故事板的屏幕截图。
上图是UITableViewCell
的属性检查器的屏幕截图上面的图片是我的UITableViewCell的内容视图的属性检查器的屏幕截图
的属性检查器的屏幕截图答案 0 :(得分:3)
<强>更新强>
它不是边界,而是阴影。现在UITableViewCellFocusStyle.default
可能在聚焦时将阴影设置为单元格,当您在隐藏它时滚动时,阴影可以在短时间内看到。
你可以像这样隐藏阴影:
func tableView(_ tableView: UITableView, didUpdateFocusIn context: UITableViewFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
if let cell = context.nextFocusedView as? CustomTableViewCell {
cell.layer.shadowOpacity = 0
cell.layer.masksToBounds = true
}
//other configurations
}
注1 :使用上述代码短时间内出现阴影。使用下面的代码没有阴影。
或者,你可以使用UITableViewCellFocusStyle.custom
并手动提供默认焦点动画而不用阴影:
func tableView(_ tableView: UITableView, didUpdateFocusIn context: UITableViewFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
let xScale = 1.008
let yScale = 1.008
if let cell = context.nextFocusedView as? CustomTableViewCell {
coordinator.addCoordinatedAnimations({ () -> Void in
cell.transform = CGAffineTransform(scaleX: CGFloat(xScale), y: CGFloat(yScale))
}, completion: nil)
}
if let previous = context.previouslyFocusedView as? CustomTableViewCell {
coordinator.addCoordinatedAnimations({ () -> Void in
previous.transform = CGAffineTransform.identity
}, completion: nil)
}
}
注意:强>
尝试使用 xScale &amp; yScale 值可获得更好的动画效果。
答案 1 :(得分:0)