【问题标题】:IOS How to anchor a UITextField at a fixed postionIOS如何将文本字段锚定在固定位置
【发布时间】:2012-03-26 10:15:21
【问题描述】:

我有一个 UITableView,我不想在表格顶部添加 UITextField,但我不希望它在表格视图滚动时滚动。我希望 uitextfield 保持在顶部。我在这些论坛上查看了一些以前的答案,但他们都在谈论 .xib 文件,我正在尝试使用 Xcode 4.3 和故事板来做到这一点。如果您能提供一些基本代码,将不胜感激:)

【问题讨论】:

    标签: ios uitableview uitextfield anchor css-position


    【解决方案1】:

    您可以轻松做到这一点。诀窍是您需要从使用 UIViewController 而不是 UITableViewController 开始。

    如果您使用 Storyboard,首先将 UIViewController 拖到画布上。然后将 UITextField 拖到视图控制器上并将其放置在您想要的位置(即顶部)。接下来将 UITableView (NOT UITableViewController) 拖到您的视图控制器上,并将表格视图的框架设置为覆盖视图控制器的所有视图,除了您的文本字段顶部的视图部分(即您不想滚动的部分)。然后将 UITableViewCell 从对象的上颚拖到您的表格视图上。在属性检查器中,将表格视图单元格的 Identifier 属性设置为唯一的(“MyCell”或其他)。

    完成此操作后,您的故事板场景应如下所示:

    接下来,您需要设置 tableview 的委托和数据源属性。不要忘记这样做。通过按住 Ctrl 键单击表视图并从委托和数据源拖动到视图控制器来执行此操作。

    最后,您需要在视图控制器类中实现表数据源和委托方法。在您的视图控制器头文件 (.h) 中,声明您将像这样实现 UITableViewDelegate 和 UITableViewDataSource:

    @interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
    

    然后在视图控制器的实现 .m 文件中实现所需的方法。至少你需要实现tableView:numberOfRowsInSection:cellForRowAtIndexPath:,可能还有tableView:didSelectRowAtIndexPath: 和可能的其他。

    @implementation MyViewController
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        // return number of rows
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {    
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
    
        // set value(s) in your table cell here
    
        return cell;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多