相关疑难解决方法(0)

如何永久取消选择分段控制按钮中的段,直到再次单击它

我有一个UISegmentedControl4段.当它被选中时,它应该保持selected state.当再次单击相同的段时,它应该deselect itself.怎么做到这一点?

objective-c uibutton uisegmentedcontrol ios

30
推荐指数
2
解决办法
1万
查看次数

Swift处理分段控制的动作

我有一个带有4个段的HMSegmentedControl.选中后,应该会弹出视图.当弹出窗口被解雇,并试图点击相同的段索引时,它应该再次显示弹出窗口.通过使用以下对弹出消失后点击相同的段索引没有任何动作.

segmetedControl.addTarget(self, action: "segmentedControlValueChanged:", forControlEvents: UIControlEvents.ValueChanged) 
Run Code Online (Sandbox Code Playgroud)

uisegmentedcontrol ios swift

28
推荐指数
4
解决办法
3万
查看次数

点击已选择的段时检测事件

嗨我想在触摸已经选定的片段时获得活动.

我已实施以下解决方案

import UIKit

class MARSSegmentController: UISegmentedControl {

    /*
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func drawRect(rect: CGRect) {
    // Drawing code
    }
    */

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        let oldValue:NSInteger = self.selectedSegmentIndex
        super.touchesBegan(touches, withEvent: event)
        if oldValue == self.selectedSegmentIndex{
            sendActionsForControlEvents(UIControlEvents.ValueChanged)
        }
    }    
} 
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我点击非选定的段,ValueChanged事件将被执行两次.

实现点按手势无效.表示当我点击未选择的片段时,它会在使用点按手势时显示旧的所选片段.

如有任何解决方案请建议.

uisegmentedcontrol ios swift

2
推荐指数
2
解决办法
1502
查看次数

当我点击已经选择的段部分时,UIControlEventValueChanged不起作用

我的目标是当我点击已经选择的段时再次触发 UIControlEventValueChanged委托.

所以我已经提到了以下链接

uisegmentedcontrol寄存器抽头上选择的段

保持选择功能于uisegmentedcontrol

根据链接,我创建了一个uisegmentedcontrol子类,实现了该- (void) setSelectedSegmentIndex:(NSInteger)toValue {方法并编写了代码(来自上面的链接).

它与Ipad1配合得很好.但是,当点击已经选择的段时,继承/子类中的setSelectedSegmentIndex不会在Ipad2中触发!但是,当我点击未选择的段索引时,它工作正常.

我完成的代码如下

主类

ReselectableSegmentControl *firstNextSegmentedControl = [[ReselectableSegmentControl alloc] init];
firstNextSegmentedControl.frame = CGRectMake(xCordinate, 255, 188, 50);
firstNextSegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
firstNextSegmentedControl.tag = index + 1;      
[firstNextSegmentedControl addTarget:self action:@selector(firstNextThenSegmentedControlValueChanged:) forControlEvents:UIControlEventValueChanged];
[firstNextSegmentedControl insertSegmentWithImage:[UIImage imageNamed:@"NoTimerCounter.png"] atIndex:0 animated:YES];
[firstNextSegmentedControl insertSegmentWithImage:[UIImage imageNamed:@"Timer.png"] atIndex:1 animated:YES];
[firstNextSegmentedControl insertSegmentWithImage:[UIImage imageNamed:@"Counter.png"] atIndex:2 animated:YES];              
firstNextSegmentedControl.selectedSegmentIndex = 0;

[self.view addSubview:firstNextSegmentedControl];
[firstNextSegmentedControl release];
firstNextSegmentedControl = nil;
Run Code Online (Sandbox Code Playgroud)

UISegmentSubClass .h文件

#import <Foundation/Foundation.h>

@interface ReselectableSegmentControl : UISegmentedControl {    

}

@end
Run Code Online (Sandbox Code Playgroud)

UISegmentSubClass .m文件

-(void)setSelectedSegmentIndex:(NSInteger …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uisegmentedcontrol ipad-2 uicontrolevents

0
推荐指数
1
解决办法
1302
查看次数