UITableView拉伸效果

  1. 创建一个UITableView 和一个UIImageView

    @property (nonatomic, strong) UITableView *tableView;

    @property (nonatomic, strong) UIImageView *headerImgaeView;

  2. 初始化

     1 - (void)viewDidLoad {
     2     [super viewDidLoad];
     3
     4     self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 568) style:UITableViewStyleGrouped];
     5     self.tableView.delegate = self;
     6     self.tableView.dataSource = self;
     7     [self.view addSubview:self.tableView];
     8
     9
    10     [self layoutHeaderImageView];
    11 }

    viewDidLoad

  3. layoutHeaderImageView

     1 - (void)layoutHeaderImageView
     2 {
     3     UIView *headerBackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)];
     4     headerBackView.backgroundColor = [UIColor lightGrayColor];
     5     self.tableView.tableHeaderView = headerBackView;
     6
     7     self.headerImgaeView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)];
     8     self.headerImgaeView.backgroundColor = [UIColor greenColor];
     9     self.headerImgaeView.image = [UIImage imageNamed:@"beautiful.jpg"];
    10     self.headerImgaeView.contentMode = UIViewContentModeScaleAspectFill;
    11     self.headerImgaeView.clipsToBounds = YES;
    12     [headerBackView addSubview:self.headerImgaeView];
    13
    14 }

    layoutHeaderImageView

  4. 滚动偏移的主要方法(这个为UIScrollViewDelegate中的代理方法)

     1 - (void)scrollViewDidScroll:(UIScrollView *)scrollView
     2 {
     3     CGFloat width = self.view.frame.size.width;// 图片宽度
     4     CGFloat yOffset = scrollView.contentOffset.y; //偏移量
     5
     6     NSLog(@":  %.2f", yOffset);
     7
     8     if (yOffset < 0) {
     9         CGFloat totalOffset = 150 + ABS(yOffset);
    10         CGFloat f = totalOffset / 150; //缩放系数
    11
    12         self.headerImgaeView.frame = CGRectMake(-(width * f - width) / 2, yOffset, width * f, totalOffset); //拉伸后的frame是同比例缩放
    13     }
    14
    15     if (yOffset > 0) {
    16         CGFloat totalOffset = 150 - ABS(yOffset);
    17         CGFloat f = totalOffset / 150;
    18
    19         self.headerImgaeView.frame = CGRectMake(-(width * f - width) / 2, yOffset, width * f, totalOffset);
    20     }
    21 }

    scrollView

时间: 2024-10-29 03:25:20

UITableView拉伸效果的相关文章

页面顶部实现拉伸效果代码

//懒加载 //顶部需要拉伸自定义视图 lazy var headView:MyHeaderView = { //let hframe = CGRect(x: 0, y: 0, width: swidth, height: swidth/self.imgRation) // let hview = Bundle.main.loadNibNamed("MyInfoHeaderView", owner: nil, options: nil)?.first as! MyInfoHeaderV

Android开发:使用ViewDragHelper实现抽屉拉伸效果

事实上,有非常多方法能够实现一个Layout的抽屉拉伸效果,最常常的方法就是自己定义一个ViewGroup,然后控制点击事件.控制移动之类的,这样的方法的代码量多,并且实现起来复杂,后期维护添加其它效果也非常麻烦,直到今天看到了 ViewDragHelper这个类,就是专门为实现View的移动而生的.我就试着开发了一个抽屉拉伸的效果,效果图例如以下: 全部移动的控制在ViewDragHelper.Callback里面来实现.移动就用dragHelper.smoothSlideViewTo来实现,

关于UITableView选中效果以及自定义cell上的控件响应事件

tableView默认的点击效果是:点击cell:A,出现点击效果,点另一个cell:B的时候,A的点击效果才会消失. 1.对于tableView,比较常用的效果,是点击表格行,出现效果,点击完毕,效果消失 那么就要在代码里做一些设置.代码如下: -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath

uiTableView 单选效果

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; NSArray* nsArryUITableViewCell=[tableView visibleCells]; //单选效果 for (UITableViewCell* uiTableViewC

自定义一个更好用的SwipeRefreshLayout(弹力拉伸效果详解)(转载)

转自: 自定义一个更好用的SwipeRefreshLayout(弹力拉伸效果详解) 前言 熟悉SwipeRefreshLayout的同学一定知道,SwipeRefreshLayout是android里面专为RecyclerView,NestedScrollView提供下拉刷新动画的一个控件.可是在使用过程中有些局限性,例如只支持上述控件,不支持ListView,GridView等,另外下拉的动画效果很难更改,而且不支持上拉加载--在很多场景的情况下往往不符合我们的需求. 今天为大家分享的是一个支

uiTableView透明效果

//uiTableView透明效果 tableView.backgroundView=nil; tableView.backgroundColor=[UIColor clearColor]; uiTableViewCellPullDown.textLabel.backgroundColor=[UIColor clearColor]; uiTableViewCellPullDown.backgroundColor=[UIColor clearColor]; uiTableView透明效果

实现刷新的拉伸效果

这是一个类似于 QQ 界面下拉刷新的效果,界面以一张图片代替,主体代码很简单 - (void)viewDidLoad { [super viewDidLoad]; _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 200)]; _imageView.image = [UIImage imageNamed:@"image.jpeg"]; UIScrollView *scrollView = [[UI

UITableView侧滑效果(1)

//侧滑-(NSArray )tableView:(UITableView )tableView editActionsForRowAtIndexPath:(NSIndexPath )indexPath{NSStringindexPathRow = [NSString stringWithFormat:@"%ld",(long)indexPath.row];[[NSUserDefaults standardUserDefaults]setObject:indexPathRow forK

UITableView &#160;折叠效果

1:创建一个model数据模型 #import <Foundation/Foundation.h> @interface DataModel : NSObject //保存section中每行的数据 @property(nonatomic,strong)NSMutableArray *array; //section名 @property(nonatomic,copy)NSString *name; //判断section是否展开 @property(nonatomic,assign)BOOL