【问题标题】:UITableView Scrolling time face the issueUITableView 滚动时间面临的问题
【发布时间】:2018-01-24 09:40:46
【问题描述】:

我创建了 UITableView,然后将阴影赋予表格视图。但是当我将阴影应用到表格视图时,滚动效果出现了一些问题,并且没有给出正确的滚动效果。

这里是影子代码..

extension UIView {
    func shadow() {
        self.layer.shadowColor = UIColor.lightGray.cgColor
        self.layer.shadowOffset = CGSize(width: 0, height: -1)
        self.layer.shadowRadius = 4.0
        self.layer.shadowOpacity = 0.5
        self.layer.masksToBounds = false
    }
}

我的 TableViewControl.swift 文件的 viewDidLoad() 代码是..

 override func viewDidLoad() {
        super.viewDidLoad()
        tableView.shadow() //If I comment this line, so output became Proper
}

所以我的错误看起来像这样.. (我的tableView滚动到tableView区域之外)

请帮我解决这个问题。提前致谢。

【问题讨论】:

  • 尝试 self.layer.masksToBounds = true
  • @NiravS self.layer.shouldRasterize = YES 将此添加到您的部分中
  • 是的,我已经将这行代码放入了代码中,但是使用这行代码我的整个视图变得模糊。所以我删除了这行代码。。
  • 好的。您是否尝试过像这样添加 shadowPath self.layer.shadowPath = UIBezierPath(rect: self.bounds).cgPath? .它通常会提高性能
  • self.layer.shadowPath = UIBezierPath(rect: self.bounds).cgPath 在你的影子方法中添加这个(扩展)

标签: ios swift uitableview swift3 uiview


【解决方案1】:
self.layer.masksToBounds = true
self.layer.clipToBounds = true

检查剪辑到 UITableView 的边界。

请试试这个。

【讨论】:

  • 在故事板中,我的选项与您给定的快照相同
  • 请检查UITableView的约束
  • 但是当我移除阴影效果使其正常工作时。所以我认为这与限制无关。
  • tableView.shadow() 在单元类中实现此方法,而不是在 VC 中。
【解决方案2】:

执行以下操作:

在 Storyboard 中,在单独的视图中添加一个 Tableview。

在您的代码中更改此代码:

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.superview?.shadow()    // instead of this tableView.shadow()
}

【讨论】:

  • Yaa.. 它正在工作,但现在我需要检查触摸和所有相关的东西。到目前为止,我们达到了预期的输出。所以谢谢。
【解决方案3】:

我对此有一个替代解决方案..

从情节提要中获取一个 UIView(比如说 containerView),并使其顶部、底部、前导、尾随边距等于您的 tableView

而不是给 tableView 阴影,给 containerView 添加阴影

containerView.shadow()

注意:您的 tableView 需要高于 containerView 才能使此代码运行 希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2011-11-20
    • 2011-11-24
    • 2016-12-22
    • 1970-01-01
    • 2016-07-07
    • 2013-08-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多