重新加载滚动视图的内容

Posted

技术标签:

【中文标题】重新加载滚动视图的内容【英文标题】:Reloading contents of scroll view 【发布时间】:2017-05-22 13:35:53 【问题描述】:

有没有办法在滚动视图中重新加载数据?我在第二个点击时滚动视图上有 5 个按钮我想将第一个按钮重新加载到正常状态是否可能?实际上我有表格视图,我有 2 行。表格视图单元格有一个滚动视图,在该滚动视图上我添加了水平滚动按钮我知道表格重新加载但我的按钮在滚动视图上,所以我被卡住了。有人可以帮忙吗?

【问题讨论】:

是的,您可以使用标签属性。相应地设置按钮的标签 1,2,3,4,5。并单击按钮,您可以更改按钮状态。 不!不要使用标签!您可以将按钮放在 IBOutletCollection 中(如果您是从 Interface Builder 创建的),如果不是,则可以放在数组中。 @KKRocks 我试过了,但是当我尝试在点击 tag1 时更新标签 0 时,它不起作用。颜色永远不会改变 您不要更改标签。您需要设置该按钮的背景颜色。 @KKRocks benford.me/blog/12-dos-and-donts-for-ios-development 给你:D 【参考方案1】:

要更新几个按钮,您可以执行以下操作...

首先创建一个按钮数组...

let buttons = [button1, button2, button3, button4, ...]

现在在你的目标行动中......

func buttonTapped(button: UIButton) 
    // filter buttons to get the ones not tapped
    buttons.filter  $0 != button 
    // set them all to be deselected
           .forEach  $0.isSelected = false 

或者类似的东西。

这实际上取决于您如何创建它们等,但在不了解您的具体情况的情况下,这将是一种非常简单的方法。

【讨论】:

【参考方案2】:

只要打电话

tableView.reloadRows(at: [IndexPath], with: UITableViewRowAnimation)

在 TableViewDataSource 方法中:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

再次使用按钮设置 ScrollView

【讨论】:

正如我所说,我在表格视图单元格上有滚动视图,在滚动视图上有按钮。如何使用此方法重新加载?我知道它非常适合桌子。 您说“表格视图单元格有一个滚动视图,并且在该滚动视图上我正在添加按钮”。那么这个按钮是否在 TableViewCell 内?如果他们不只是为他们获得 IBOutlet,您可以用它做任何您想做的事情

以上是关于重新加载滚动视图的内容的主要内容,如果未能解决你的问题,请参考以下文章

重新加载并滚动到特定的集合视图单元格

滚动或重新加载表格视图后视图位置更改

重新加载uitableview后滚动表格视图

如何在快速向上和向下滚动表格时停止自动重新加载表格视图? [关闭]

CollectionView 标题在滚动时停止刷新/重新加载数据

用动画重新加载子视图