JXPagingView icon indicating copy to clipboard operation
JXPagingView copied to clipboard

安全边距问题

Open forkdog opened this issue 2 years ago • 5 comments

安全边距问题,请求修改下JXPagingView.swift

    open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath)
        cell.selectionStyle = .none
        cell.backgroundColor = UIColor.clear
        if listContainerView.superview != cell.contentView {
            cell.contentView.addSubview(listContainerView)
        }
        if listContainerView.frame != cell.contentView.bounds {
            listContainerView.frame = cell.contentView.bounds
        }
        return cell
    }

版本号 1.JXPagingView版本号:2.1.2 2.OC还是Swift版本:swift

forkdog avatar Oct 17 '22 06:10 forkdog

OC版本同样遇到底部留白问题,考虑或许也是安全边距问题

wkjCoder avatar Oct 25 '22 02:10 wkjCoder

@forkdog 通过这种方式修改部分系统上还是会存在问题。

场景:竖屏切换到横屏 系统:iPhone 11 iOS 14.1(模拟器), iPhone 13 iOS 15.6.1(真机) - - 个人使用设备情况 注:iPhone 14 iOS 16.0 模拟器正常

在上述设备的情况下,在竖屏切换到横屏的过程中,tableView 的 layoutSubview 方法会被执行,此时在 cellForRow 中获取到 cell.contentView.frame 包含安全区域的空间;在横竖屏结束之后,contentView.frame 会发生变化,减少了左右安全区域的宽度。而 contentView frame 变化时不会重新调整 listContainerView 的 frame,最后 listContainerView 的大小会出现错误。

我的解决方案: 这里的布局方式替换成约束布局

Tory-Xu avatar Dec 07 '22 12:12 Tory-Xu

iOS 16.1 下运行会出现底部空白,iOS14.1下运行正常显示

ebamboo avatar Mar 29 '23 02:03 ebamboo

底部空白的高度应该是安全区域的底部间距,所以多计算了一次距离导致底部留白

ebamboo avatar Mar 29 '23 02:03 ebamboo

参考swift版本demo中的【列表是VC示例】,给list tableView设置tableView.contentInsetAdjustmentBehavior = .never,就不会有底部的安全边距。

pujiaxin33 avatar Jul 10 '24 08:07 pujiaxin33