2017-09-10 1 views
0

Ich habe die folgende benutzerdefinierte UIView erstellt:Wie fügen Sie Touch-Outlets zu benutzerdefinierten UIView hinzu?

// 
// YearSelectorSegControl.swift 
// OurDailyStrength iOS 
// 
// Created by Rob Avery on 8/28/17. 
// Copyright © 2017 Rob Avery. All rights reserved. 
// 

import UIKit 

@IBDesignable 
class YearSelectorSegControl: UIView { 

    var buttons = [UIButton]() 
    var selector: UIView! 
    var sv: UIStackView! 

    var currentPosition: Int = 0 

    @IBInspectable 
    var borderWidth: CGFloat = 0 { 
     didSet { 
      layer.borderWidth = borderWidth 
     } 
    } 

    @IBInspectable 
    var borderColor: UIColor = UIColor.clear { 
     didSet { 
      layer.borderColor = borderColor.cgColor 
     } 
    } 

    @IBInspectable 
    var textColor: UIColor = .lightGray { 
     didSet { 
      updateView() 
     } 
    } 

    @IBInspectable 
    var textBackground: UIColor = .clear { 
     didSet { 
      updateView() 
     } 
    } 

    func updateView() { 
     // ... code here ... 
    } 

    override func draw(_ rect: CGRect) { 
     layer.cornerRadius = 0 
    } 
} 

Als ich in den Interface Builder gehen, und versuchen, diese UIView an den Controller anschließen, das einzige, was ein Auslass erlaubt ist. Ich möchte in der Lage sein, diese benutzerdefinierte UIView mit einer Funktion zu verbinden, wenn sie berührt wird. Wie mache ich das?

+0

, warum diese nicht auf Storyboard versuchen? – Thili77

+0

@ Thili77 das ist, was ich versuche zu tun –

Antwort

1

Sie haben UIControl Unterklasse statt UIView

@IBDesignable 
class YearSelectorSegControl: UIControl { 
    ... 
} 
+0

Was ist der Unterschied? –

+0

UIControl-Unterklasse UIView, aber xcode erlaubt es, @IBActions mit ihr zu verbinden. – hfehrmann

+0

Es kann ein Problem mit etwas sein, das ich mache. Ich habe versucht, eine Geste programmgesteuert hinzuzufügen und dies zu tun. Die Funktion wird nie aufgerufen. –

0

Mit Storyboard,

  1. Ändern Sie die Klasse von UIView auf Identität Inspektor als UIButton

  2. Jetzt können Sie Aktion Anschluss-Set dazu UIView als UIButton

enter image description here

ein code

@IBAction func clickView(_ sender: UIButton) { 

    //perform your actions in here 

} 
Verwandte Themen