一、TableViewCell使用约束自适应高度的几种方式
1、//使用TABLEVIEW自带方法来自适应高度
lettestValue:NSString="aaaaaaaa"
functableView(tableView:UITableView, heightForRowAtIndexPath indexPath:NSIndexPath) ->CGFloat{
letattr = [NSFontAttributeName:UIFont.systemFontOfSize(17)]
returntestValue.boundingRectWithSize(CGSizeMake(300,0), options: .UsesLineFragmentOrigin, attributes: attr, context:nil).size.height
}
2、使用两行代码搞定
//初始高度60
table_view.estimatedRowHeight=60
//自适应高度
table_view.rowHeight=UITableViewAutomaticDimension
二、TableView向下滑动后顶部无法再滑回初始状态
self.automaticallyAdjustsScrollViewInsets = false
三、TableView无内容时取消分割线
table_view.tableFooterView = UIView()
四、uitableview刷新CELL的两种方式
1、用reloaddata来刷新全部CELL从而达到局部改变某些CELL样式、内容等或者全部重新加载;reloaddata不会改变CELL在屏幕中显示的位置;
2、tableView.beginUpdates()和tableView.endUpdates()采用动画式来reloadrow而不是reloadtableview。详解 http://www.cnblogs.com/breezemist/p/3538673.html
五、UITableView继承了ScrollView的滚动特性,从而可以在tableview中添加滚动动画之类的动态效果
func scrollViewDidScroll(scrollView:UIScrollView) {
//出现在屏幕中的cells visibleCells
forcellintableView.visibleCells{
letbottomView = cell.contentView.viewWithTag(2000)
letimage = bottomView?.viewWithTag(2001)
letrect = bottomView?.convertRect((bottomView?.bounds)!, toView:nil)
varY =UIScreen.mainScreen().bounds.size.height- (rect?.origin.y)! -600
Y*=0.2
ifY>0{
Y=0
}
ifY < -100{
Y = -100
}
image?.frame.origin.y= Y
}
}