大佬教程收集整理的这篇文章主要介绍了iOS11中另类自定义UITableViewCell删除按钮的外观,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
iOS不@R_212_11197@中对于TableView行的删除按钮的实现内部是不一样的,甚至传说不同Xcode版本编译出来的App里也是不一样的:
iOS 8-10: UITableView -> UITableViewCell -> UITableViewCelldeleteConfirmationView -> _UITableViewCellActionButton
iOS 11 (Xcode 8编译): UITableView -> UITableViewWrapperView -> UISwipeActionPullView -> UISwipeActionStandardButton
iOS 11 (Xcode 9编译): UITableView -> UISwipeActionPullView -> UISwipeActionStandardButton
原链接:https://www.jianshu.com/p/779f36c21632
我没有尝试在Xcode 8里编译iOS11的App,不过对于iOS旧版本和Xcode 9.3下的iOS11来说,作者说的是正确的.
我们知道修改删除按钮一般无外乎更换下背景,字体等东东,不过这里我们索性变得尺度更大一点.
以下开发环境为Xcode 9.3 + iOS 11
因为TableView行高度较大,所以如果删除按钮不做调整就会非常丑:
So我们需要把它变得很好看一些,于是我们首先需要锁定删除按钮的位置.注意,我们不能用以下的方法:
- (nullable UISwipeActionsConfiguration *)tableView:(UITableView *)tableView leadingSwipeActionsConfigurationForRowATindexPath:(NSIndexPath *)indexPath - (nullable UISwipeActionsConfiguration *)tableView:(UITableView *)tableView TrailingSwipeActionsConfigurationForRowATindexPath:(NSIndexPath *)indexPath
因为它们达不到要求.
以下代码只是简单的示例,并不能作为产品代码来用,因为没有考虑其他条件:
override func layoutSubviews() {
super.layoutSubviews()
for subView in subviews{
if subView.isKind(of: NSClassFromString("UISwipeActionPullView")!){
if subView.frame.width == 0 {isFixed = false;return}
if isFixed {return}
subView.frame = subView.frame.insetBy(dx: 0,dy: 85.5)
subView.layer.cornerRadius = 74/2.0
subView.layer.masksToBounds = true
subView.layer.borderWidth = 5.0
subView.layer.borderColor = UIColor.black.withAlphaComponent(0.5).cgColor
isFixed = true
}
}
}
以上是大佬教程为你收集整理的iOS11中另类自定义UITableViewCell删除按钮的外观全部内容,希望文章能够帮你解决iOS11中另类自定义UITableViewCell删除按钮的外观所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。