欢迎来真孝善网,为您提供真孝善正能量书籍故事!

使用UIImageView打造图片轮播器教程

时间:11-16 神话故事 提交错误

大家好,今天给各位分享使用UIImageView打造图片轮播器教程的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

@interfaceInfinitudeView()

@property(非原子,弱)UIImageView *imgView; /** 图像容器*/

@property(非原子,分配)NSInteger索引; /** 图像索引*/

@property(非原子,分配)NSInteger imageCount; /** 图片数量*/

@property (非原子,强) NSTimer *timer; /** 定时器*/

@property(非原子,弱)UILabel *showCountLabel; /** 显示索引*/

@property(非原子,强)UISwipeGestureRecognizer *leftSwipeGesture; /** 向左滑动手势*/

@property(非原子,强)UISwipeGestureRecognizer *rightSwipeGesture; /** 右滑手势*/

@结束1。显示图像和图像索引

UIImageView *imgView=[[UIImageView alloc] initWithFrame:self.bounds];

imgView.contentMode=UIViewContentModeScaleAspectFit;

[自我添加Subview:imgView];

self.imgView=imgView;

UILabel *showCountLabel=[[UILabel alloc] init];

[自我addSubview:showCountLabel];

self.showCountLabel=showCountLabel;

showCountLabel.translatesAutoresizingMaskIntoConstraints=NO;

showCountLabel.font=[UIFont systemFontOfSize:15.0f];

[自我添加Constraints:@[

[NSLayoutConstraint约束WithItem:showCountLabel属性:NSLayoutAttributeRight相关By:NSLayoutRelationEqual toItem:self属性:NSLayoutAttributeRight乘数:1.0f常量:-20],

[NSLayoutConstraint约束WithItem:showCountLabel属性:NSLayoutAttributeBottom相关By:NSLayoutRelationEqual toItem:self属性:NSLayoutAttributeBottom乘数:1.0f常量:-20]]

];2。将图像数组添加到.h 文件中以进行数据传输。

@interface InfinititudeView : UIView

@property(非原子,强)NSArray *imageArray; /** 图像数组*/

@end3。重写imageArray的setter方法,传入图片时设置。

/**

* 根据图片数组设置图片

*

* @param imageArray 图像数组

*/

- (void)setImageArray:(NSArray *)imageArray {

_imageArray=imageArray;

_imageCount=imageArray.count;

_索引=0;

[自行设置图像];

}4.数组可以传入图片,也可以传入图片的链接字符串,所以需要做出判断。为了更方便地加载网络图片,可以直接使用第三方SDWebImage。

/**

* 设置图片

*/

- (void)setImage {

//显示图像索引

[自我设置显示计数标签文本];

id 对象=[_imageArrayfirstObject];

//如果传入图片,则直接显示图片。如果是图像链接,网络将加载它。

if ([对象isKindOfClass:[UIImage 类]]) {

_imgView.image=_imageArray[_index];

} else if ([object isKindOfClass:[NSMutableString class]]) {

[_imgView sd_setImageWithURL:[NSURL URLWithString:_imageArray[_index]]];

}

}5.索引设置

/**

* 显示索引

*/

- (void)setShowCountLabelText {

NSMutableAttributedString *attributedString=[[NSMutableAttributedString alloc] init];

NSAttributedString *str1=[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%zd", _index + 1] 属性:@{NSForegroundColorAttributeName : [UIColor colorWithRed:0.915 绿色:0.685 蓝色:0.574 alpha:1.000]}];

NSAttributedString *str2=[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"/%zd", _imageCount] attribute:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

[attributedStringappendAttributedString:str1];

[attributedStringappendAttributedString:str2];

_showCountLabel.attributedText=attributeString;

} 至此,运行效果

1.png

6.添加手势

/**

* 添加手势

*/

- (void)addGuesture {

//1.添加左滑手势

_leftSwipeGesture=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(gestureMethod:)];

_leftSwipeGesture.direction=UISwipeGestureRecognizerDirectionLeft;

[自我addGestureRecognizer:_leftSwipeGesture];

//2.添加右滑手势

_rightSwipeGesture=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(gestureMethod:)];

_rightSwipeGesture.direction=UISwipeGestureRecognizerDirectionRight;

[自我添加GestureRecognizer:_rightSwipeGesture];

}7.手持响应方法

/**

* 手势响应方式

*

* @param swipeGesture 响应手势

*/

- (void)gestureMethod:(UISwipeGestureRecognizer *)swipeGesture {

开关(swipeGesture.direction){

案例UISwipeGestureRecognizerDirectionLeft:

_索引++;

[自我设置ImageWithIndex:_index];

[自我动画TransitionWithSwipeGestureRecognizerDirection:swipeGesture.direction];

休息;

案例UISwipeGestureRecognizerDirectionRight:

_指数- ;

[自我设置ImageWithIndex:_index];

[自我动画TransitionWithSwipeGestureRecognizerDirection:swipeGesture.direction];

休息;

默认:break;

}

}8.基于滑动设置图片

/**

* 根据手势设置图片

*/

- (void)setImageWithIndex:(NSInteger)index {

如果(索引_imageCount - 1){

_索引=0;

} else if (索引0) {

_index=_imageCount - 1;

}

[自行设置图像];

}9.设置过渡动画

/**

* 添加过渡动画

*

* @param Direction 手势方向

*/

- (void)animationTransitionWithSwipeGestureRecognizerDirection:(UISwipeGestureRecognizerDirection)方向{

CATransition *transition=[CATransition 动画];

过渡持续时间=0.5f;

//设置动画风格

转换类型=kCATransitionPush;

如果(方向==UISwipeGestureRecognizerDirectionRight){

过渡.subtype=@"fromLeft";

} 别的{

过渡.subtype=@"fromRight";

}

[_imgView.layer addAnimation:transition forKey:nil];

}跑步

2.gif9.下一步是在图像传入时添加计时器。

/**

* 根据图片数组设置图片

*

* @param imageArray 图像数组

*/

- (void)setImageArray:(NSArray *)imageArray {

_imageArray=imageArray;

_imageCount=imageArray.count;

_索引=0;

_timer=[NSTimerchedTimerWithTimeInterval:3.0f target:self选择器:@selector(timerMethod)userInfo:nil重复:YES];

[自行设置图像];

}

/**

* 定时器响应方法

*/

- (void)定时器方法{

_索引++;

[自我设置ImageWithIndex:_index];

[自身animationTransitionWithSwipeGestureRecognizerDirection:_leftSwipeGesture.direction];

}滑动时需要关闭定时器

/**

* 手势响应方式

*

* @param swipeGesture 响应手势

*/

- (void)gestureMethod:(UISwipeGestureRecognizer *)swipeGesture {

[_计时器无效];

开关(swipeGesture.direction){

案例UISwipeGestureRecognizerDirectionLeft:

_索引++;

[自我设置ImageWithIndex:_index];

[自我动画TransitionWithSwipeGestureRecognizerDirection:swipeGesture.direction];

休息;

案例UISwipeGestureRecognizerDirectionRight:

_指数- ;

[自我设置ImageWithIndex:_index];

[自我动画TransitionWithSwipeGestureRecognizerDirection:swipeGesture.direction];

休息;

默认:break;

}

_timer=[NSTimerchedTimerWithTimeInterval:3.0f target:self选择器:@selector(timerMethod)userInfo:nil重复:YES];

} 我们看一下整体效果

用户评论

陌上花

想学习一下怎么用 UIImageView 实现轮播效果!

    有14位网友表示赞同!

北染陌人

iOS 开发中轮播图挺常用的吧,这个帖子刚好能解决我的需求。

    有5位网友表示赞同!

凉凉凉”凉但是人心

之前做项目的时候也遇到过类似的问题,期待看到文章里能提供解决步骤!

    有20位网友表示赞同!

清羽墨安

图片轮播器做的好看很有必要的,可以提升用户体验。

    有14位网友表示赞同!

栀蓝

用 UIImageView 实现轮播器应该会比用第三方库更灵活吧?

    有18位网友表示赞同!

命硬

分享一下你的项目中如何应用图片轮播器的场景和效果~

    有5位网友表示赞同!

如梦初醒

文章标题很吸引人,我正在需要这个知识点!

    有14位网友表示赞同!

我绝版了i

学习新技术总是让人兴奋,期待这个教程!

    有14位网友表示赞同!

纯情小火鸡

希望能够详细讲解代码实现步骤,方便我们理解。

    有15位网友表示赞同!

丢了爱情i

UIImageView 实现轮播器应该是入门难度比较低的项目吧?

    有16位网友表示赞同!

尘埃落定

能不能分享一下代码注释的使用方法,更容易理解代码逻辑。

    有18位网友表示赞同!

今非昔比'

图片轮播效果有很多种,这篇文章会介绍哪种类型呢?

    有12位网友表示赞同!

反正是我

做图片轮播器的时候图片的加载速度要考虑好,不然影响用户体验。

    有17位网友表示赞同!

暖栀

希望文章能涵盖一些常见的问题和解决方案,比如图片错位等情况。

    有20位网友表示赞同!

哭着哭着就萌了°

学习了这个实现方法之后,可以尝试自定义图片轮播器的UI设计吧?

    有14位网友表示赞同!

七级床震

做个精美实用的图片轮播器需要哪些关键技术点?

    有10位网友表示赞同!

素婉纤尘

这个教程适合什么水平的 iOS 开发者?我算是新手入门应该能看懂吗?

    有7位网友表示赞同!

晨与橙与城

能不能分享一下用其他框架实现轮播器的学习资源?

    有5位网友表示赞同!

嘲笑!

期待看到作者分享更多 iOS 开发经验!

    有6位网友表示赞同!

棃海

图片轮播器是一个很有用的工具,希望这个教程能够帮助到大家!

    有12位网友表示赞同!

【使用UIImageView打造图片轮播器教程】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活