First method: accessibility to the rescue!
Lengthy story brief, I used to be fairly bored with tagging views with silly quantity values, so I seemed for a greater different resolution to repair my downside. Because it turned out, there’s a property referred to as
accessibilityIdentifier that may do the job.
extension UIView var id: String? get return self.accessibilityIdentifier set self.accessibilityIdentifier = newValue func view(withId id: String) -> UIView? if self.id == id return self for view in self.subviews if let view = view.view(withId: id) return view return nil
I made a easy extension across the UIView class, so now I can use a correct string worth to uniquely determine any view object within the view hierarchy. It is fairly a pleasant resolution, now I can identify my views in a very nice method. As a free of charge storing the identify below the
accessibilityIdentifier will profit your UI assessments. 😉
Second method: utilizing enums
The principle concept is to have an
Int primarily based enum for each view identifier, so mainly you need to use the
tag property to retailer the enum’s
rawValue. It is nonetheless not so good because the one above, however it’s far more secure than counting on pure integers. 😬
enum ViewIdentifier: Int case submitButton extension UIView var identifier: ViewIdentifier? set if let worth = newValue self.tag = worth.rawValue get return ViewIdentifier(rawValue: self.tag) func view(withId id: ViewIdentifier) -> UIView? return self.viewWithTag(id.rawValue)
Truthfully I simply got here up with the second method proper after I copy & pasted the primary snippet to this text, however what the heck, possibly another person will prefer it. 😂
If in case you have a greater resolution for this downside, be at liberty to share it via twitter. Oh, by the way in which, remember to subscribe to my month-to-month e-newsletter beneath.