ios – UISegmentedController在按两次相同的段后冻结

发布时间:2020-07-31 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了ios – UISegmentedController在按两次相同的段后冻结脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我结合 Swift代码和第三方库(用Obj-C编写).我有一个带有UISegmentedController的UIViewController,我想在每次推送一个段或再次推送同一段时触发.

在我的Swift代码中,我有以下内容:

override func viewDidLoad() {
        super.viewDidLoad()
        //setup
        items = ["newTab".localized,"topTab".localized,"categoryTab".localized]
        carbonTabSwipeNavigation = CarbonTabSwipeNavigation(items: items as [AnyObject],delegate: self)
        carbonTabSwipeNavigation.insertIntoRootViewController(self)
        self.style()
        self.view.userInteractionEnabled = true


        carbonTabSwipeNavigation.carbonSegmentedControl!.addTarget(self,action: #selector(OverviewFolder.changesMade),forControlEvents: UIControlEvents.ValueChanged)
    }
func changesMade() {
        switch carbonTabSwipeNavigation.carbonSegmentedControl!.selectedSegmentIndex {
        case 0:
            print("tab 1")
        case 1:
            print("tab 2")
        case 2:
            print("tab 3")
        default:
            print("nope")
        }
    }

在库中我添加了以下代码:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSInteger current = self.selectedSegmentIndex;
    [super touchesEnded:touches withEvent:event];
    if (current == self.selectedSegmentIndex)
        [self sendActionsForControlEvents:UIControlEventValueChanged];
}

所以基本上我想在每次用户按下一个段时触发一个ValueChanged动作(即使它是同一个段).目前,当我按下相同的段时,它会第二次触发,但之后UISegmentController变得无响应(无法再切换段).

解决方法

最终对我有用的是:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesEnded:touches withEvent:event];

    [self sendActionsForControlEvents:UIControlEventTouchUpInside];
}

carbonTabSwipeNavigation.carbonSegmentedControl!.addTarget(self,forControlEvents: UIControlEvents.TouchUpInside)

总结

以上是脚本之家为你收集整理的ios – UISegmentedController在按两次相同的段后冻结全部内容,希望文章能够帮你解决ios – UISegmentedController在按两次相同的段后冻结所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478
脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!