У меня есть подкласс для UISegmentedControl, который называется SegControl
в классе Touch Cocoa.Где я могу назвать подкласс? (reselectable UISegmentControl Swift 3)
class SegControl: UISegmentedControl {
override var = "test"
}
И теперь у меня есть UISegmentControl в моем ViewController, что я должен сделать, что это соответствует моему пользовательскому классу?
EDIT: Полный код для Reselectable UISegmentControl для Swift 3
class ReselectableSegmentedControl: UISegmentedControl {
@IBInspectable var allowReselection: Bool = true
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
let previousSelectedSegmentIndex = self.selectedSegmentIndex
super.touchesEnded(touches, with: event)
if allowReselection && previousSelectedSegmentIndex == self.selectedSegmentIndex {
if let touch = touches.first {
let touchLocation = touch.location(in: self)
if bounds.contains(touchLocation) {
self.sendActions(for: .valueChanged)
}
}
}
}
}
UISegmentControl:
var savedSegment: Int = -1
@IBAction func segmentChanged(_ sender: ReselectableSegmentedControl) {
if (sender.selectedSegmentIndex == savedSegment) {
sender.selectedSegmentIndex = UISegmentedControlNoSegment
savedSegment = UISegmentedControlNoSegment
}
else {
savedSegment = sender.selectedSegmentIndex
}
Ну, вы просто объявить это как 'SegControl', а не' UISegmentedControl'. Если вы используете его в IB, то вы можете изменить класс элемента управления в IB тоже ... – Grimxn
Я просто изменяю его следующим образом: @IBAction func segment (_ sender: SegControl)? –
Ну, если это действие, которое оно вызывает, то да. – Grimxn