V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhengwuzhou
V2EX  ›  问与答

如何在UITableView的末尾动态添加一个含UITextField的UITableViewCell?

  •  
  •   zhengwuzhou · 2012-11-07 17:06:57 +08:00 · 6616 次点击
    这是一个创建于 4401 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想要实现的效果是:

    有一个UITableView,每行内容都是text,

    当点击工具栏上的“添加”按钮时,keyboard出现,同时UITableView滚动到最后一行,最后一行下一行增加一个UITableViewCell,该cell包含一个可以UITextField。

    这个效果跟iPhone自带的“提醒事项”的效果相同,请问该如何实现呢?

    多谢各位!
    9 条回复    1970-01-01 08:00:00 +08:00
    mmkkyang
        1
    mmkkyang  
       2012-11-07 19:30:26 +08:00   ❤️ 1
    用表视图实现的话可在点击添加按钮的情况下numberOfRowsInSection 返回值加1
    cellForRowAtIndexPath中对最后row实例一个带有UITextField的Cell
    UITextField成为第一响应者,滚动到最后一行可用scrollToRowAtIndexPath方法

    不通过TableView实现的话可以在表视图上相应位置加一个UITextField视图
    平时隐藏,点击添加按钮则滚动表视图,并显示UITextField

    BTW,需要用到CoreData不?
    zhengwuzhou
        2
    zhengwuzhou  
    OP
       2012-11-07 22:15:57 +08:00
    @mmkkyang numberOfRowsInSection是协议中的函数,请问如何在按钮点击事件中,改变numberOfRowsInSection的返回值呢?
    zhengwuzhou
        3
    zhengwuzhou  
    OP
       2012-11-07 22:20:49 +08:00
    @mmkkyang 我没有用到CoreData,我用的是NSArray直接writeToFile,生成了plist文件。
    alexrezit
        4
    alexrezit  
       2012-11-07 22:42:33 +08:00
    你直接加在 footer 上面不行么... = =?
    alexrezit
        5
    alexrezit  
       2012-11-07 22:52:56 +08:00
    明白了.
    添加行:
    [self.tableView insertRowsAtIndexPaths:<#(NSArray *)#> withRowAnimation:<#(UITableViewRowAnimation)#>];
    添加输入框:
    [cell.contentView addSubview:_inputTextView];
    滚动到最后一行:
    NSInteger numberOfSections = self.tableView.numberOfSections;
    NSInteger numberOfRows = [self.tableView numberOfRowsInSection:numberOfSections - 1];
    [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:numberOfRows - 1 inSection:numberOfSections - 1] atScrollPosition:UITableViewScrollPositionBottom animated:YES];

    虽然我很想损你一句: 读一下文档会死啊?
    zhengwuzhou
        6
    zhengwuzhou  
    OP
       2012-11-07 23:07:48 +08:00
    @alexrezit 你按照你的方法试试看能不能实现!
    alexrezit
        7
    alexrezit  
       2012-11-07 23:53:19 +08:00
    @zhengwuzhou 细节上要处理的远远不止这些, 你自己写呗.
    zhengwuzhou
        8
    zhengwuzhou  
    OP
       2012-11-08 10:05:36 +08:00
    @alexrezit insertRowsAtIndexPath压根不是答案
    alexrezit
        9
    alexrezit  
       2012-11-08 11:05:27 +08:00
    @zhengwuzhou 为什么不是?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5661 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:08 · PVG 17:08 · LAX 01:08 · JFK 04:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.