gpt4 book ai didi

ios - BLKFlexibleHeightBar 行为定义器不符合 UITableViewDelegate

转载 作者:行者123 更新时间:2023-11-28 16:14:40 26 4
gpt4 key购买 nike

所以我正在使用 this library这允许我在向下滚动时压缩的表格 View 顶部制作一个栏。现在我使用桥接头将它安装在我的 Swift 项目中。所以我按照实现指南,将所有代码转换为 Swift 代码。一切正常,直到我在“配置栏行为”部分遇到问题。

栏行为定义器 是知道何时根据您在表格中滚动的距离放大/缩小栏的部分。因此它使用 UITableViewDelegate (TVD) 来执行此操作。但是看着source code对于 BarBehaviorDefiner,您可以看到它仅实现了 UIScrollViewDelegate

这就是问题所在。我需要将 tableview 的委托(delegate)设置为 BLKFlexibleHeightBarBehaviorDefiner 类型的对象之一,但它们不是 UITableViewDelegate 类型。

self.tableView.delegate = (id<UITableViewDelegate>)myBar.behaviorDefiner;

现在我知道 TVD implements SVD作为它的一部分,但我无法将 SVD 设置为需要 TVD 的东西。

这是我尝试过的:

  1. 将我的表格链接为 UIScrollView 而不是 UITableView。代码:

    @IBOutlet weak var table: UIScrollView!

    /*
    * irrelevant code *
    */

    headerBar.behaviorDefiner = SquareCashStyleBehaviorDefiner()
    table.delegate = headerBar.behaviorDefiner

这会导致杆实际上在压缩,但工作台不会随杆移动。它只是停留在原处,在条形图被压缩的地方留下一个空白。

  1. 可选择像实现指南中那样进行转换。代码:

    @IBOutlet 弱变量表:UITableView!

    /*
    * irrelevant code *
    */

    headerBar.behaviorDefiner = SquareCashStyleBehaviorDefiner()
    table.delegate = headerBar.behaviorDefiner as? UITableViewDelegate

这不会转换它。当我向下滚动表格时,该应用程序不执行任何操作。

  1. 强制转换为 UITableViewDelegate。代码:

    @IBOutlet 弱变量表:UITableView!

    /*
    * irrelevant code *
    */

    headerBar.behaviorDefiner = SquareCashStyleBehaviorDefiner()
    table.delegate = headerBar.behaviorDefiner as! UITableViewDelegate

这将返回错误could not cast value of type 'UIScrollViewDelegate' to 'UITableViewDelegate'

我想这可能是因为我做的很快,但这个错误不应该是基于语言的?!

最佳答案

我遇到了这个问题。

您需要编辑 BLKDelegateSplitter.h @interface 声明。将其替换为:

@interface BLKDelegateSplitter : NSObject <NSObject, UITableViewDelegate>

来源:https://github.com/bryankeller/BLKFlexibleHeightBar/issues/42

关于ios - BLKFlexibleHeightBar 行为定义器不符合 UITableViewDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39235831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com