ios tableview 上加 textfiled

首先附上我项目中用曾经用到的几张图  并说明一下我的用法:

图1:

图2:

图3:

心在你我说一下  我当初的实现 方法 ,希望能给你们一些  启示

图1:  我采用的是最简单的方法   因为cell的个数比较少 并且不会出现键盘把cell挡住的情况  所以我直接就是用的 view 上边加 label  +textfield  虽然代码很繁琐 但是 还是实现了基本的效果

图2:由于这个cellde 个数比较多 再使用   view+label+textfield的方法 就不现实了,  所以我 就找各种办法,终于 找到 cell可以跟随键盘移动了,也就是说 键盘不会挡住输入框,我采用的是tableviewcontroller    ,只有使用 TableviewController就很容易的实现了我想要的效果。    但是 后来在开发中遇到一个问题  :    因为使用的是UItableviewContrller   当时我们的设计就说 可不可以将下边的按钮审核中 让他的位置固定  ,不随tableview的滚动而滚动,但是我也是尝试了各种的办法,但是还是没有办法实现,所以最后ui妥协了 就让他随位置移动吧 ,因为tableviewcontroller 虽然帮助我们实现了很多的功能,但是 在界面是就比较局限了,远远比不上  uiviewcontroller+tableview  灵活。

图3: 最近又要做  类似于  图2 的  图,我终于 还是 不能容忍自己 使用uitableviewcontroller了  所以我还是 试了很多 就是 如图三实现的效果: 当键盘出来的时候 不会挡住uitextfield    不影响用户的体验,那么我是如何实现的呢?

思路:

uiviewcontroller+uitableview

让tableview  的当前编辑的cell 始终处于  tableview 的中间位置,这样的话就不会被挡住了。当然了    tableview 里边就有相应的方法:

 [_tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];

是的 使用这个方法就可以了。

发上代码:

#pragma mark - 改变tableview的位置(当将要编辑的时候)
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:textField.tag inSection:0]; //将要编辑的textfield 所在的cell 使其滚动到中间的位置 [_tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES]; return YES;
}

没错使用这个就可以实现了。是不是感觉很神奇ne

ios tableview 上加 textfiled的更多相关文章

  1. iOS tableview上textView在编辑状态时,tableview自动上移的功能

    在viewcognroller中,添加tableview时, tableview中cell上的textField如果吊起键盘时,tableview时可以自动上移,但是如果是textView吊起键盘,t ...

  2. iOS Safari 上加载的最大的图片尺寸

    做WAP端项目时发现, 写css代码显示图片, 却显示不出.或用canvas 来加载图片的某一部分的时候显示不出, 代码如下: background: url() no-repeat -1000px ...

  3. iOS tableview上放textfield

    用UITableViewController就可以了,处理键盘弹出和消失的代码已经封装在UITableViewController里了.

  4. ios在tableview里面加subview后在ip4和ip5上显示不一样的问题

    文章链接:http://quke.org/post/ios-tableview-addsubview-height.html (转载时请注明本文出处及文章链接) 我在在tableview里面加subv ...

  5. 微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题

    微信多图片上传必须挨个上传,也就是不能并行,得串行: 那么我们可以定义一个如下所示的上传函数: var serverIds = []; function uploadImages(localImage ...

  6. https加载http资源,导致ios手机上的浏览器图片加载问题

    今天解决一个线上bug的时候发现的问题,如下图: 从表象来看,同样的图片,安卓手机上可以正常展示,但是到ios手机上首次进入页面就不能正常显示图片,必须手动刷新一次页面才能正常加载. 这时候,我们首先 ...

  7. Safari配置WebApp----添加启动图和桌面图标让你的WebApp在ios设备上体验如原生一样

    现在很多开发者的Web应用程序的设计样式和交互类似本机应用程序,例如,它的缩放比例适合iOS上的整个屏幕.当用户将其添加到主屏幕时,您可以通过使其看起来像本机应用程序一样,在iOS上为您的Web应用程 ...

  8. 在TableView上添加悬浮按钮

    如果直接在TableVIewController上贴Button的话会导致这个会随之滚动,下面解决在TableView上实现位置固定悬浮按钮的两种方法: 1.在view上贴tableView,然后将悬 ...

  9. 如何在iOS地图上高效的显示大量数据

    2016-01-13 / 23:02:13 刚才在微信上看到这篇由cocoachina翻译小组成员翻译的文章,觉得还是挺值得参考的,因此转载至此,原文请移步:http://robots.thought ...

随机推荐

  1. zookeeper环境的搭建

    接管条件:磁盘上原数据完全一样,而自动接管,则是由zookeeper 实现的 FailloverController:控制namenode状态:检查namenode:通过远程协议

  2. 【原】SparkContex源码解读(一)

    版权声明:本文为原创文章,未经允许不得转载. SparkContext(简称sc)是Spark程序的主入口,代表一个连接到Spark集群(Standalone.YARN.Mesos三种集群部署模式)的 ...

  3. linux驱动程序之电源管理之Run-time PM 详解(4)

    Run-time PM. 每个device或者bus都会向run-time PM core注册3个callback   struct dev_pm_ops { ... int (*runtime_su ...

  4. HW3.8

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  5. [二]Ajax基本实现

    <script text="text/javascript"> function ajax(){ var httpRequest; if(windows.httpReq ...

  6. java_list<String> string[]拼接json

    private String getJsonStr(List<String> jsonKeyList, String[] values){ String jsonStr = "{ ...

  7. 【42】了解typename的双重意义

    1.在template声明中,class与typename是等价的,但是使用typename更好. 2.在template实现中,模版形参是从属名称,嵌套在模版形参中的类型是嵌套从属名称,不依赖任何t ...

  8. Override ListView getAdapter造成的后果

    近期工作中,发现了一个bug,是和ListView Adapter有关的.产生了FC,描写叙述信息大约是 "The content of the adapter has changed bu ...

  9. Flash中的文本应用

    1.分离文本 (1)为什么要分离文本? 由于某些操作不能直接作用于文本对象,比如为文本填充渐变色,以及调整文本的外形. 上述操作仅仅作用于图像对象,所以须要将文本打散,使其具有和图形相似的属性. 注意 ...

  10. MP3的频率、比特率、码率与音质的关系

    想知道MP3的频率.比特率.码率与音质的关系,是不是频率越高,码率越高,音质就越好.好像MP3大多数的频率都是44100HZ的.码率有128,192等等. 这里所说的频率是採样率,一般都是44100K ...