核心代码两个方法:
- (void)viewDidLoad
{
[superviewDidLoad];
self.myDataArray = [NSMutableArrayarrayWithObjects:@"小明",@"刘德华",@"李连杰",@"孙俪",@"刘小光",@"小沈阳", nil];
self.tableView = [[UITableViewalloc]initWithFrame:CGRectMake(0, 0, 320, 568)];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = [UIColorlightGrayColor];
self.tableView.contentInset = UIEdgeInsetsMake(kImageOriginHight, 0, 0, 0);
[self.view addSubview:self.tableView];
self.expandZoomImageView = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"aaa"]];
self.expandZoomImageView.frame = CGRectMake(0, -kImageOriginHight - kTempHeight, self.tableView.frame.size.width, kImageOriginHight + kTempHeight);
[self.tableViewaddSubview:self.expandZoomImageView];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat yOffset = scrollView.contentOffset.y;
NSLog(@"yOffset===%f",yOffset);
CGFloat xOffset = (yOffset + kImageOriginHight)/2;
if (yOffset < -kImageOriginHight) {
CGRect f = self.expandZoomImageView.frame;
f.origin.y = yOffset - kTempHeight;
f.size.height = -yOffset + kTempHeight;
f.origin.x = xOffset;
f.size.width = 320 + fabsf(xOffset)*2;
self.expandZoomImageView.frame = f;
}
}
下面是全部的代码。。。。。。。。。
//
// HomeViewController.h
// expandZoom
//
// Created by Buddy on 14/7/14.
// Copyright (c) 2014年 Kyle Fang. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface HomeViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>
@property (nonatomic, strong) UIImageView *expandZoomImageView;
@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) NSMutableArray *myDataArray;
@end
//
// HomeViewController.m
// expandZoom
//
// Created by Buddy on 14/7/14.
// Copyright (c) 2014年 Kyle Fang. All rights reserved.
//
#import "HomeViewController.h"
static CGFloat kImageOriginHight = 200;
static CGFloat kTempHeight = 80.0f;
@interfaceHomeViewController ()
@end
@implementation HomeViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
returnself;
}
- (void)viewDidLoad
{
[superviewDidLoad];
self.myDataArray = [NSMutableArrayarrayWithObjects:@"小明",@"刘德华",@"李连杰",@"孙俪",@"刘小光",@"小沈阳", nil];
self.tableView = [[UITableViewalloc]initWithFrame:CGRectMake(0, 0, 320, 568)];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = [UIColorlightGrayColor];
self.tableView.contentInset = UIEdgeInsetsMake(kImageOriginHight, 0, 0, 0);
[self.view addSubview:self.tableView];
self.expandZoomImageView = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"aaa"]];
self.expandZoomImageView.frame = CGRectMake(0, -kImageOriginHight - kTempHeight, self.tableView.frame.size.width, kImageOriginHight + kTempHeight);
[self.tableViewaddSubview:self.expandZoomImageView];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat yOffset = scrollView.contentOffset.y;
NSLog(@"yOffset===%f",yOffset);
CGFloat xOffset = (yOffset + kImageOriginHight)/2;
if (yOffset < -kImageOriginHight) {
CGRect f = self.expandZoomImageView.frame;
f.origin.y = yOffset - kTempHeight;
f.size.height = -yOffset + kTempHeight;
f.origin.x = xOffset;
f.size.width = 320 + fabsf(xOffset)*2;
self.expandZoomImageView.frame = f;
}
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 44;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
returnself.myDataArray.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *myCell = @"MyCellIndifer";
UITableViewCell *cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:myCell];
cell.textLabel.text = [self.myDataArray objectAtIndex:indexPath.row];
return cell;
}
@end
相关推荐
7. **动画与交互设计**:微信界面中的许多交互效果,如滑动返回、下拉刷新等,需要使用Core Animation来实现。同时,良好的用户体验设计,如过渡动画、按钮反馈等,也是仿制微信界面时需考虑的要素。 8. **推送通知...
实现的功能 在tableView下拉显示小程序入口 高仿实现三个点的动画特效 下拉过程震动提示 小程序入口界面支持动态高度变化 使用到的第三方框架 https://github.com/Yalantis/Persei ...
综上所述,实现"uni-app 社交 下拉加载历史消息记录,滚动到下拉之前,不闪"这一功能,需要结合uni-app的生命周期、数据管理、页面布局优化等多个技术点,确保在加载过程中提供平滑的用户体验。
首先,这种效果基于手势识别技术,通常在Android和iOS平台上的ListView、RecyclerView或TableView等组件上实现。对于Android,我们可以使用内置的SwipeRefreshLayout库,尽管这个库主要是为了实现下拉刷新,但通过...
在实现微信朋友圈效果时,可能会涉及到collectionView或tableView的自定义布局,以便以流式或瀑布流的形式展示内容。同时,为了提供良好的用户体验,滑动刷新和下拉加载更多功能也是必不可少的。 总结来说,"swift-...
- iOS开发者则可以利用`UITableView`的`swipeActions`属性,或者使用第三方库如`SWTableViewCell`来实现类似效果。 3. **编程实现**: - 对于Android: - 自定义`RecyclerView.ItemDecoration`来处理滑动过程中...
作者guxiuhu,源码MiniProgHeaderView,实现的功能在tableView下拉显示小程序入口高仿实现三个点的动画特效下拉过程震动提示小程序入口界面支持动态高度变化使用到的第三方框架...
增加 基于 lot 的 gif ,增加 tableView 基类,基于 lot 和 MJ 自定义下拉刷新 增肌了微信支付 demo github: https://github.com/zhanghaifeng1234565/ProjectFunctionCollect
综上所述,上拉刷新下拉加载是现代移动应用不可或缺的交互设计,通过合理的实现和优化,可以极大提升用户体验。开发者可以根据不同的平台和技术栈选择适合的实现方案,确保功能的稳定性和效率。
1. **SDWebImage**:这是一个流行的iOS库,用于下载和缓存网络上的图片。它支持异步加载,可以在后台线程中下载图片,避免阻塞UI,提高用户体验。SDWebImage还提供了图片缓存机制,当图片再次需要时,可以从本地缓存...