dus*_*ker 42 iphone xcode uisegmentedcontrol iboutlet
实际上标题包含我的问题.我有一个UISegmentedControl,需要取消选择当前选中的选项卡.我试过了:
[menu setSelectedSegmentIndex:-1];
Run Code Online (Sandbox Code Playgroud)
菜单是Uisegmentedcontrol的UBOutlet,但这给了我一个例外.谁有想法?谢谢皮特
Cal*_*ule 235
正确的方法是:
[menu setSelectedSegmentIndex:UISegmentedControlNoSegment];
Run Code Online (Sandbox Code Playgroud)
dom*_*esz 31
我猜你试图在分段控制中创建一个瞬时选择.在界面构建器中,将分段控件设置为瞬时.或者在代码中你可以做:
menu.momentary = YES;
Run Code Online (Sandbox Code Playgroud)
Dan*_*ard 27
设置segmentedControl以.momentary = YES
更改用户与segmentedControl交互的方式.如果你想在页面加载时没有选择任何内容,但是在用户做出选择之后segmentedControl的行为相同,那么你会想要更像这样的东西:
Swift 4解决方案:
@IBOutlet weak var segmentedControl: UISegmentedControl!
self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment
Run Code Online (Sandbox Code Playgroud)
我做了支持这种交互的课程:
class UIDeselectableSegmentedControl: UISegmentedControl {
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
let previousSelectedSegmentIndex = self.selectedSegmentIndex
super.touchesEnded(touches, with: event)
if previousSelectedSegmentIndex == self.selectedSegmentIndex {
self.selectedSegmentIndex = UISegmentedControl.noSegment
let touch = touches.first!
let touchLocation = touch.location(in: self)
if bounds.contains(touchLocation) {
self.sendActions(for: .valueChanged)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样做的主要优点是,您只需要修改 Storyboard/Xib/ViewCode 正在使用的类,这将像魅力一样工作;]
迅捷 4
@IBOutlet weak var segmentControl: UISegmentedControl! {
didSet {
segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
}
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*rek -1
我假设您已调用[myArray length]
而不是[myArray count]
代码中正确的位置。NSArray 使用 count 方法,而不是它包含的项目数的 length 方法。
归档时间: |
|
查看次数: |
28645 次 |
最近记录: |