我的应用中有一个UITableView
Autolayout
。
按LoadEarlier
按钮索引[0]后,我需要在TableView中插入一些行
但我想留在我的TableView的最后一个位置。(像WhatsApp& ...那样加载早期。)
我的问题是在设置contentOffset
后我的TableVoew的位置不正确。
我检查这个链接,但这个问题不像我的问题,但我认为答案可以帮助我们。 UITableViewAutomaticDimension - Cells move when table is reloaded 这个链接: Keep uitableview static when inserting rows at the top
我喜欢这样:
// in ViewDidLoad
self.myTableView.estimatedRowHeight = 100;
self.myTableView.rowHeight = UITableViewAutomaticDimension;
//implemention of LoadEalier Method
CGFloat oldTableViewHeight = self.myTableView.contentSize.height;
for (int i = temp ; i < temp +26; i++) {
myObject * tempObject = [[myObject alloc]init];
tempObject.name = [NSString stringWithFormat:@"Obj : %d",i];
tempObject.uID = [[NSUUID UUID]UUIDString];
[_dataArray insertObject:tempObject atIndex:0];
}
[self.myTableView reloadData];
CGFloat newTableViewHeight = self.myTableView.contentSize.height;
self.myTableView.contentOffset = CGPointMake(0, self.myTableView.contentSize.height - oldTableViewHeight);
如果我从我的代表&amp;中移除AutomaticDimension ....它在静态的细胞高度上完美地工作,但是我需要AutomaticDimension来计算我的细胞的高度。
答案 0 :(得分:0)
<强>更新强>
我无法找到保持org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'searchCriteria' on field 'dateCreation': rejected value [2015-09-16];
codes [typeMismatch.searchCriteria.dateCreation,typeMismatch.dateCreation,typeMismatch.java.sql.Timestamp,typeMismatch];
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [searchCriteria.dateCreation,dateCreation]; arguments [];
default message [dateCreation]];
default message [Failed to convert property value of type 'java.lang.String' to required type 'java.sql.Timestamp' for property 'dateCreation';
nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [java.sql.Timestamp]
for property 'dateCreation':
PropertyEditor [org.springframework.beans.propertyeditors.CustomDateEditor] returned inappropriate value of type [java.util.Date]]
偏移UITableView
的解决方案。
我已从UITableViewAutomaticDimension
&amp;移除了UITableViewAutomaticDimension
heightForRowAtIndexPath
并保留estimateForRowAtIndexPath
:
UITableView
答案 1 :(得分:0)
简单有效的技巧:
var upsideDown: Bool = true
// swap table view vertically
tableView.transform = upsideDown
? CGAffineTransform(scaleX: 1, y: -1)
: .identity
// swap cell in cellForRowAt method
cell.transform = upsideDown
? CGAffineTransform(scaleX: 1, y: -1)
: .identity
像往常一样插入行,这些行将出现在tableview的顶部。
这与UITableView.automaticDimension一起正常工作,滚动保持平稳。
尽管第一行仍将保留在tableview的底部,但是您可以通过额外的编码对其进行修复。