在证券类App开发过程中,常常遇到对不同条目的各种价格显示,把他们放在同一行显示时,字体会显得很小;放在不同行,对比起来就不会太直观.在同一行中采用UIScrollView,通过手势的左右拖动来展示不同的价格,是比较折中的解决方案,效果如下图:
上下两个方向滑动
UITableView能实现上下滑动,在每一个Cell中添加UIScrollView,实现左右滑动.当每个UIScrollView滑动时,让UITableView的各个Cell随着滑动,核心实现方法如下:
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSArray *cells = self.tableV.visibleCells;
[cells enumerateObjectsUsingBlock:^(ZDTableViewCell *obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (obj != self) {
obj.scrollV.contentOffset = scrollView.contentOffset;
}
}];
ZDHeaderView *headerV = self.tableV.headerV;
headerV.scrollV.contentOffset = scrollView.contentOffset;
}
UITableView的'名称'所在的行,要求UITableView上下滑动时,悬停于头部,可以利用UITableView的UITableViewStylePlain样式,并把'名称'所在行放在SectionHeader的位置,实现方法如下:
#pragma mark - UITableViewDelegate
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
return self.headerV;
}
- (ZDHeaderView *)headerV{
if (!_headerV) {
_headerV = [[ZDHeaderView alloc] initWithFrame:CGRectMake(0, 0, ScreenSize.width, HeaderHeight)];
}
return _headerV;
}
具体实现请下载
ScrollAtTwoDirection
收藏和喜欢都是对我的鼓励和支持~