仿appstore源码php,iOS 模仿App Store应用介绍图浏览效果

安卓有个系统Api clipToPadding可以很简单实现App Store应用介绍图的浏览效果,找了很久也没找到iOS有对应的Api。就自己简单实现了下,在此记录一下,请看到的大佬们批评指正。

App Store的浏览效果

0d7a88763a05

商店浏览效果.gif

自己实现的浏览效果

0d7a88763a05

自己实现的浏览效果.gif

实现逻辑

在视图上建一个scrollView留上左右边距,用来显示前后图片的侧边,左右边距地方的手势触碰盲区通过重写scrollView的触碰区域解决。通过位置计算确定imageView的frame。

具体实现代码

.h文件

#import

NS_ASSUME_NONNULL_BEGIN

@interface WXWScrollImageView : UIView

///网络图片数组

@property (copy, nonatomic) NSArray *imageURLArr;

///本地图片数组

@property (copy, nonatomic) NSArray *imageLocalArr;

///选中的当前图片,默认第一张

@property (assign, nonatomic) NSInteger currentIndex;

@end

NS_ASSUME_NONNULL_END

.m文件

#import "WXWScrollImageView.h"

#import

@interface WXWScrollImageView () {

UIScrollView *_scrollView;

}

@end

@implementation WXWScrollImageView

- (id)initWithFrame:(CGRect)frame {

self = [super initWithFrame:frame];

if (self) {

// Initialization code

_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];

_scrollView.clipsToBounds = NO;

_scrollView.showsVerticalScrollIndicator = NO;

_scrollView.showsHorizontalScrollIndicator = NO;

_scrollView.pagingEnabled = YES;

_scrollView.delegate = self;

[self addSubview:_scrollView];

}

return self;

}

- (void)awakeFromNib {

[super awakeFromNib];

_scrollView = [[UIScrollView alloc] init];

_scrollView.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);

_scrollView.clipsToBounds = NO;

_scrollView.showsVerticalScrollIndicator = NO;

_scrollView.showsHorizontalScrollIndicator = NO;

_scrollView.pagingEnabled = YES;

_scrollView.delegate = self;

[self addSubview:_scrollView];

}

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

return _scrollView;

}

#pragma mark -method

- (void)settingImageView:(NSArray *)imagesArr type:(NSString *)type {

CGSize size = _scrollView.frame.size;

for (int i = 0; i < imagesArr.count; i++) {

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(i * size.width + 7.5, 0, size.width - 15, size.height)];

if ([type isEqualToString:@"本地图片"]) {

UIImage *image = [UIImage imageNamed:imagesArr[i]];

imageView.image = image;

} else if ([type isEqualToString:@"网络图片"]) {

[imageView sd_setImageWithURL:[NSURL URLWithString:imagesArr[i]]];

}

imageView.contentMode = UIViewContentModeScaleAspectFill;

imageView.layer.cornerRadius = 30;

imageView.clipsToBounds = YES;

imageView.layer.borderWidth = 0.5;

imageView.layer.borderColor = UIColor.grayColor.CGColor;

[_scrollView addSubview:imageView];

}

[_scrollView setContentSize:CGSizeMake(size.width * imagesArr.count, size.height)];

}

#pragma mark -SETTER

- (void)setImageURLArr:(NSArray *)imageURLArr {

if (_imageURLArr != imageURLArr) {

_imageURLArr = imageURLArr.copy;

if (_imageLocalArr.count == 0) {

[self settingImageView:_imageURLArr type:@"网络图片"];

}

}

}

- (void)setImageLocalArr:(NSArray *)imageLocalArr {

if (_imageLocalArr != imageLocalArr) {

_imageLocalArr = imageLocalArr.copy;

if (_imageURLArr.count == 0) {

[self settingImageView:_imageLocalArr type:@"本地图片"];

}

}

}

- (void)setCurrentIndex:(NSInteger)currentIndex {

if (_currentIndex != currentIndex && (currentIndex <= _imageLocalArr.count || currentIndex <= _imageURLArr.count)) {

_scrollView.contentOffset = CGPointMake(_scrollView.frame.size.width * (currentIndex - 1), 0);

}

}

@end

pod使用

pod 'WXWScrollImageView'

网页封装iOS苹果App源码是指将网页以WebView的形式封装成一个iOS应用程序的源码。使用该源码可以方便地将现有的网页应用快速转化为原生的iOS应用。 网页封装iOS苹果App源码的作用主要有以下几个方面: 1. 提升用户体验:通过使用原生的iOS控件和功能,可以使网页应用iOS设备上的表现更加流畅和专业,提升用户的体验感。 2. 支持离线功能:封装后的iOS应用可以将网页内容缓存到本地,使得用户在无网络连接时仍然能够使用应用。这对于一些需要频繁访问的网页应用特别有用。 3. 提供更好的推送和通知功能:通过封装成iOS应用,可以利用iOS平台提供的推送和通知功能,使得应用能够主动向用户发送通知,提供更好的实时交互。 4. 提高应用的可发现性:将网页封装成iOS应用后,可以发布到苹果的App Store上,使得更多的用户能够方便地找到并下载使用应用。 5. 与原生功能的集成:封装后的应用可以与iOS设备的原生功能进行深度集成,比如利用摄像头、定位、传感器、联系人等,为用户提供更多的服务和功能。 封装一个网页应用iOS苹果App源码可以通过使用一些开源的工具或框架来实现,比如Cordova(也称PhoneGap)、React Native等。这些工具/框架提供了一套API和开发工具,使得开发者能够快速地将网页应用转化为iOS应用。 总之,网页封装iOS苹果App源码是一种将现有网页应用封装成原生iOS应用的方法,可以提升用户体验、支持离线功能、添加推送和通知、提高可发现性、与原生功能集成等。通过合适的工具和技术,开发者可以快速地将网页应用封装成iOS应用,以提供给iOS用户使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值