Swift put multiple IBOutlets in an Array

前端 未结 4 1923
走了就别回头了
走了就别回头了 2020-12-05 17:25

\"Multiple

I made these (marked with red border) IBOutlets using ctrl + drag

But i

相关标签:
4条回答
  • 2020-12-05 17:44

    you can define a generic outlet collection in Swift like this:

    @IBOutlet var collectionOfViews: Array<UIView>? // = [UIView]?
    

    or for e.g. UIButton objects:

    @IBOutlet var collectionOfButtons: Array<UIButton>? // = [UIButton]?
    

    you can find your collections under the Outlet Collections group as usually are in the File's Owner:

    Outlet Collections

    it would look on my console after connecting 5 random buttons:

    Connected UIButton instances to Collection

    0 讨论(0)
  • 2020-12-05 17:59

    Follow these steps to create an array of outlets an connect it with IB Elements:

    • Create an array of IBOutlets
    • Add multiple UIElements (Views) in your Storyboard ViewController interface
    • Select ViewController (In storyboard) and open connection inspector
    • There is option 'Outlet Collections' in connection inspector (You will see an array of outlets there)
    • Connect if with your interface elements

    -

    class ViewController2: UIViewController {
    
    
        @IBOutlet var collection:[UIView]!
    
    
        override func viewDidLoad() {
            super.viewDidLoad()
        }
    }
    

    enter image description here

    0 讨论(0)
  • 2020-12-05 18:00

    Start with the two view pane where you see both your code and the storyboard. When you make your first IBOutlet connection from the UI to your code, just look carefully at the Connection drop down field and select the option called "Outlet Collection". This will automatically create an array of IBOutlets. Next just look for the little black circle within a circle that is placed in your code where the array is created. Just drag from this circle to all the other UI objects you want to connect to that same collection (not sure if you can mix types). Similarly you can connect all the objects to one Action by dragging from the first black dot created to all the other objects you want to wire up to that action. Also consider EnumerateSequence() to help in working with this Collection. Sweet right?

    0 讨论(0)
  • 2020-12-05 18:02

    Solution here Swift - IBOutletCollection equivalent

    @IBOutlet var objectCollection: [Object]

    0 讨论(0)
提交回复
热议问题