If there is only one UITextField, I agree that your approach will be better / identical compared to using UITextField delegation (I think).
However, suppose you want to “broaden” your view so that there are now about 7-8 or more text fields. Then, if you start using your approach, the problem will be that you will store 7-8 or more text fields in memory and maintain them.
In such a situation, the best approach would be that you only create as many text fields as visible on the screen. Then you create a dictionary that will support the content present in the text field (which you can get using the UITextFieldDelegate methods). Thus, the same text field can be used when the cell is reused. Only the values will change and will be determined by the values in the dictionary.
In rim, the minimum creation in cellForRowAtIndexPath that is called during each scroll of the table, and therefore creating a text field in cellForRowAtIndexPath can be expensive.
source share