如果它是一个tableview,那么一旦用户点击登录按钮,我该如何访问tableview内部的textfields?是否有一种快速的方法来迭代tableview中的单元格?
这是一个简单的问题,但如果不需要,我不想实现一个复杂的tableview...
来源: https://github.com/c99koder/lastfm-iphone
编辑:您可以自定义UITableViewCell并在其中放置UITextField。但是,有一种更简单的方法可以实现此目的,因为登录/注册页面几乎总是静态的。请参见下文。
LastFM for iPhone使用了类似的登录/注册页面设计。他们开源了他们的代码。查看nib文件,您将知道LastFM是如何做到这一点的。 :-)
看起来这个页面并没有使用UITableView
(否则,您可以向上或向下滚动页面)。它只是两个带有自定义背景的UITextField
。
现在,如果您想要使用UITableView
,您可以将UITableViewCell
中的UITextField
存储为变量。然后,当用户点击登录按钮时,您只需从UITextField
中获取text
值。
但是,如果您要模仿Facebook的外观,您不需要使用UITableView
。
希望这能帮到您!
好的,现在我理解了你的问题(感谢@Jonathan!),看起来确实是使用自定义UITableViewCells和UITextField的tableview。
创建带有UITextField的自定义单元格后,您可以将您的视图控制器分配为UITextField委托,并通过委托方法在各个点访问值:
– textFieldShouldBeginEditing:
– textFieldDidBeginEditing:
– textFieldShouldEndEditing:
– textFieldDidEndEditing:
举个例子,在你的textFieldShouldReturn:
方法中,你可以使用以下代码获取该单元格的indexPath:
NSIndexPath *indexPath = [self.loginTable indexPathForCell:(MemberLoginCell*)[[textField superview] superview]];
然后通过以下代码获取该单元格:
MemberLoginCell *cell = (MemberLoginCell*)[self.loginTable cellForRowAtIndexPath:indexPath];
或者直接获取textField.text
的值,并将其分配给一个NSString,以便根据需要传递给你的LOGIN方法。
我知道已经有一个被接受的答案了,但是我创建了一个类似Facebook登录页面的UITableView。代码在这里的github上。