首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISegmentedControl在UITableView头上的行为很奇怪

UISegmentedControl在UITableView头上的行为很奇怪
EN

Stack Overflow用户
提问于 2016-05-05 03:08:51
回答 4查看 440关注 0票数 2

我创建了一个自定义单元,用一个协议替换UITableViewSectionHeader,以便在更改UISegmentedControl.index时进行处理,这样我就可以按名称或值对表进行排序:

代码语言:javascript
复制
import UIKit
protocol OrdenarTableViewDelegate {
func ordenarTableView(cell: OrdenarTableViewCell)
}
class OrdenarTableViewCell: UITableViewCell {
var delegate: OrdenarTableViewDelegate?
@IBOutlet weak var segmentedOrdenar: UISegmentedControl!
@IBAction func alteraOrdenacao(sender: UISegmentedControl) {
    delegate?.ordenarTableView(self)
}

在UITableViewControler上我引用了协议

代码语言:javascript
复制
class SelecionadasTableViewController: UITableViewController, UITextFieldDelegate, OrdenarTableViewDelegate {

并付诸实施:

代码语言:javascript
复制
    // MARK: - Ordenar Delegate
func ordenarTableView(cell: OrdenarTableViewCell) {
    if cell.segmentedOrdenar.selectedSegmentIndex == 0 {
        listaCervejas = bancoDeDados.selecionaCervejas(false)
    } else {
        listaCervejas = bancoDeDados.selecionaCervejas(true)
    }
    ordenarCervejas = cell.segmentedOrdenar.selectedSegmentIndex
    tableView.reloadData()
}

当我选择索引1时,应用程序工作正常,但当选择索引0时,只有单击任何其他单元格上的UITextField或拉下表进行刷新(顺便说一下,没有实现刷新),该操作才会执行。

我遗漏了什么吗?因为这感觉很尴尬。

我注意到,只有当我单击一个选项,然后单击UISegmentedControl上的另一个选项,而没有触及屏幕上的其他任何位置时,问题才会发生……

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-05-01 20:11:03

我真的找到了解决办法。您可以将IBAction拖到tableViewController中。那就很好了!!谢谢大家的帮助。

票数 0
EN

Stack Overflow用户

发布于 2016-12-01 02:35:37

您可以创建一个自定义视图来替换tableHeaderView,尝试一下。

票数 1
EN

Stack Overflow用户

发布于 2016-05-05 07:55:18

重新加载表视图时,添加到表视图的所有内容都将被重新加载。每次检查选定的段索引,并在重新加载表后重新设置此索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37041665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档