如何创建一个像iPhone Facebook应用程序一样的登录屏幕?

4
iPhone上的Facebook应用程序具有出色的用户名/密码设置,几乎看起来像是一个uitableview,其中包含两行UITextField,这是如何完成的?或者完全不同于此的东西?
如果它是一个tableview,那么一旦用户点击登录按钮,我该如何访问tableview内部的textfields?是否有一种快速的方法来迭代tableview中的单元格?
这是一个简单的问题,但如果不需要,我不想实现一个复杂的tableview...
5个回答

4

来源: https://github.com/c99koder/lastfm-iphone

编辑:您可以自定义UITableViewCell并在其中放置UITextField。但是,有一种更简单的方法可以实现此目的,因为登录/注册页面几乎总是静态的。请参见下文。

LastFM for iPhone使用了类似的登录/注册页面设计。他们开源了他们的代码。查看nib文件,您将知道LastFM是如何做到这一点的。 :-)

  • 截图1:原始
  • 截图2:我删除了一些背景png文件后的样子。

enter image description here enter image description here


3
在我看来,这种解决方案有些不够正式,因为你可以轻松创建自定义的tableviewcell并利用UITextField委托方法与值进行交互。 - Rog
请问您能否添加一个源链接? - Black Frog
1
  1. 这是其中一个解决方案。
  2. 使用相同的外观和功能,它需要更少的代码。
  3. 我们没有听到任何 LastFM 用户因为意识到登录/注册页面不是由真正的 UITableViews 制作而不喜欢该应用程序。
- Di Wu
@Black Frog:我刚在我的答案中添加了源链接。 - Di Wu

2
创建一个tableview控制器并进入xib文件->属性检查器->tableview,选择“group styled”而不是plain。然后您可以通过在代码中添加用于用户名和密码的文本字段来自定义tableview单元格。然后创建一个新的UIView并将该视图设置为表视图的页脚视图以获取登录按钮。
要了解更多关于这个问题的解释,请查看此问题的答案。 在iPhone中以分组样式显示表格视图

1

看起来这个页面并没有使用UITableView(否则,您可以向上或向下滚动页面)。它只是两个带有自定义背景的UITextField

现在,如果您想要使用UITableView,您可以将UITableViewCell中的UITextField存储为变量。然后,当用户点击登录按钮时,您只需从UITextField中获取text值。

但是,如果您要模仿Facebook的外观,您不需要使用UITableView

希望这能帮到您!


0

好的,现在我理解了你的问题(感谢@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方法。


实际上,你甚至不需要做所有这些,只需访问http://touch.facebook.com。 - Rog
2
我认为OP是在询问原生Facebook应用程序(http://www.trickyways.com/wp-content/uploads/2009/08/login-facebook-on-iphone.png)。 - Jonathan.
@Jonathan 嘿,你可能是对的,我会相应地编辑我的答案! - Rog
很遗憾,这个问题是关于iPhone本地应用程序的。 - Di Wu

0

我知道已经有一个被接受的答案了,但是我创建了一个类似Facebook登录页面的UITableView。代码在这里的github上。


那个链接中没有任何与登录表相关的内容。 - Adil Soomro
怎么会这样?它之前肯定在里面,我来看看。 - Jonathan.
当然,有一个简单的空子类UITableViewController。 :) - Adil Soomro
刚找到了,正在上传中 :) - Jonathan.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接