tableview直接滚动至最后一行

类似聊天界面,tableview应该直接显示在最后一行,并且不应该有滚动的出现。

在网上查了很久,直接滚动至最后一行很容易实现,有两种方法比较好。

1. 调用scrollToRowAtIndexPath方法

复制代码
 -(void) scrollBottom{if ([self.messageData count]) {   //messageData是数据源NSIndexPath *indexPath=[NSIndexPath indexPathForRow:self.messageData.count-1 inSection:0];[self.chatTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];}}
复制代码

2. 改变ContentOffset

self.chatTableView setContentOffset:CGPointMake(0, self.chatTableView.contentSize.height -self.chatTableView.bounds.size.height) animated:YES];

不过接下来会遇到一个问题,在什么时候调用它们。

第一种方法在viewDidLoad和viewWillAppear中不能调用,因为那个时候cell还没生成,会报错,那么在viewDidAppear中调用是可行的,但这样用户点击进去能看到一个下滑的动作,并不好

第二种方法也一样,在viewDidLoad和viewWillAppear中调用没有效果,只有在viewDidAppear中调用,这样也一样有个下滑的动作。

解决方法

最后发现了问题的所在,移动到最后一行只是一个方法而已,点击去滚动条直接在最后一行和这个没有必然的联系。

这个要看上个页面是通过什么方法进入这个controller的,一般是两种方法。

1. 通过segue进来,那么默认就是拉倒了最后一行。

2.通过storyboard初始化viewcontroller然后push,就没有直接拉倒最后一行。我就是用这种方法的,最后的解决办法不是很好,是在

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath这个方法里添加:

if (self.isFirst) {[self scrollBottom]; 
self.isFirst = NO;
}

这样只有点进去的时候会执行,此时页面还没有appear,所以没有下滑的动作就显示在了最后一行

转载于:https://www.cnblogs.com/chenliyang/p/6554385.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言两个字符串比较,将两个字符串s1和s2比较,如果s1s2,数组编程:将2个字符串s1和s2比较。若s1s2输出1;若s1=s2,输出0;若s1s2,输出-1(不能用strcmp函数)...

满意答案zxd8611032014.04.15采纳率&#xff1a;55% 等级&#xff1a;9已帮助&#xff1a;563人#include<iostream.h>#include<string.h>int min(int a,int b){return ((a<b)?a:b);}void main(){char a[1000],b[1000];int lena,lenb,i,t,res,flag0;cin>&…

鼠标问题:鼠标拖拽不灵敏,准备复制拖动的半截就断了

解决办法&#xff1a;清理一下鼠标下部激光感应的地方&#xff0c;还不行就得换一个试试了。

在线高清大图发布

ImageBrowser 解决了任意大小的在线高清大图的快速发布与显示&#xff0c;支持tif、jpg、png、bmp等多种图片格式&#xff0c;能够快速更新索引、跨平台部署和支持二次开发&#xff0c;可以在任何网站下调用和显示。可广泛应用于摄影、车展、古玩拍卖、建筑工程等领域。 实例地…

c语言函数调用参数调用的太少,浅谈C语言函数调用参数压栈的相关问题

参数入栈的顺序以前在面试中被人问到这样的问题&#xff0c;函数调用的时候&#xff0c;参数入栈的顺序是从左向右&#xff0c;还是从右向左。参数的入栈顺序主要看调用方式&#xff0c;一般来说&#xff0c;__cdecl 和__stdcall 都是参数从右到左入栈。看下面的代码&#xff1…

adobe reader(PDF)数字证书添加

编辑——首选项——签名 ——身份与可信任证书里的“更多”——添加身份证 ——选择我现有的数字身份认证来自文件——选择文件输入密码确认即可也可以采用添加系统证书的方式&#xff0c;双击证书一直下一步即可&#xff0c;系统自动将证书存入系统中。此方法也适用于福昕等阅…

c语言编写期末考试成绩,C语言期末考试卷(A卷含答案).doc

C语言期末考试卷(A卷含答案)桂林电子科技大学信息科技学院试卷2011-2012 学年第 2 学期 课号 I04BT014 课程名称 C语言程序设计 (A卷;、闭卷) 适用班级(或年级、专业) 11级、全院 考试时间 120 分钟 班级 学号 姓名 题 号一二三四五六七八九十成绩满 分403030 100得 分 评卷人 …

self

# 定义一个类class Animal:# 方法def setName(self, name):self.name namedef printName(self):print (名字为:, self.name)# 定义一个函数def myPrint(animalName):animalName.printName() dog1 Animal()dog1.setName(西西)myPrint(dog1)dog2 Animal()dog2.setName(北北)my…

前端学习(2324):angular初步使用

app.component.html <div style"text-align:center"><h1>welcome to {{title}}</h1><div style"color:#f00000">我是歌谣</div><div>{{name}}</div> </div>app.component.ts import { Component } from…

jquery ajax json转换出错Invalid JSON

ajax中json转换采用jQuery.parseJSON(json)&#xff0c;1.4版本后的jQuery.parseJSON(json)传入一个畸形的JSON字符串会抛出一个异常。比如下面的都是畸形的JSON字符串&#xff1a; {test: 1} &#xff08; test 没有包围双引号&#xff09;{test: 1} &#xff08;使用了单引号…

Codeforces Round #201 (Div. 2)C,E

数论&#xff1a;C. Alice and Bobtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIt is so boring in the summer holiday, isnt it? So Alice and Bob have invented a new game to play. The rules are as follo…

c语言非法字符有哪些,98行的四则计算器.(支持括号)加入了非法字符的检测

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#includedouble s2n(char **tem)//字符串转为数字{double tem_satof(*tem);while(isdigit(*(*tem))||**tem.);return tem_s;}bool error_found(const char *now)//检测错误的输入{while(*now!\0&&isdigit(…

前端学习(2325):angular之数据修改

app.component.html <div style"text-align:center"><h1>welcome to {{title}}</h1><div style"color:#f00000">我是歌谣</div><div>{{name}}</div> </div>app.component.ts import { Component } from…

Java调用WCF

到网上下载axis包&#xff0c;执行以下命令&#xff0c;set Axis_Libaxis-1_4\libset Java_Cmdjava -Djava.ext.dirs%Axis_Lib%set Output_Path.set Packagewcf%Java_Cmd% org.apache.axis.wsdl.WSDL2Java http://localhost:8000/WebWcf/GetAccountService.svc?wsdl -o%Output…

静态方法和类方法

1. 类方法 是类对象所拥有的方法&#xff0c;需要用修饰器classmethod来标识其为类方法&#xff0c;对于类方法&#xff0c;第一个参数必须是类对象&#xff0c;一般以cls作为第一个参数&#xff08;当然可以用其他名称的变量作为其第一个参数&#xff0c;但是大部分人都习惯以…

c语言角谷定理递归,【C++】(递归+非递归)卖鸭子及角谷定理+递归模型+递归树...

ps&#xff1a;全文中如果有任何错误您看到并能指出来的话(尤其是递归树)感激不尽XDDDD每个问题包含&#xff1a;(1)题目描述(2)递归解决代码(3)非递归解决代码(4)递归模型(5)递归树(6)运行结果截图一、卖鸭子问题1.题目描述一个人赶着鸭子去每个村庄卖&#xff0c;每经过一个村…

前端学习(2325):angular之添加新组件

app.component.html <div style"text-align:center"><h1>welcome to {{title}}</h1><div style"color:#f00000">我是歌谣</div><div>{{name}}</div> </div>app.component.ts import { Component } from…

【批处理】shift用法举例

1 echo off 2 set sum03 call :sub sum 1 2 3 44 echo sum%sum%5 pause6 7 :sub8 set /a %1%1%29 shift /2 10 if not "%2""" goto sub 11 goto :eof View Code转载于:https://www.cnblogs.com/xiongjiawei/p/6564958.html

C语言给出任意4个数算24点,讨论24点算法。

讨论24点算法。24点是扑克牌游戏 玩法是&#xff1a;从一副扑克的A到10里随意抽出4张牌用‘加’’减‘‘乘’‘除’四个符号算出4个数是否等于24&#xff0c;是的话成功&#xff0c;否的话失败&#xff1b;我用的是穷举法&#xff01;(源码有点长)就是穷举出所有可能的算术式&a…