滚动式图+网络解析获取图片滚动

#import “ViewController.h”
#define HCWidth self.view.frame.size.width
#define HCHeight self.view.frame.size.height

@interface ViewController ()
{
UIScrollView *sc; // 滚动视图
UIPageControl *pageC; // 分页控制符
NSArray *imgArr; // 图片数组
NSTimer *timer; // 定时器
int k; // 计数

}
@end

@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(qqq) userInfo:nil repeats:YES];
    // 定时器开启
    [timer fire];

    // 滚动视图
    sc = [[UIScrollView alloc]initWithFrame:self.view.frame];
    // 设置滚动视图的代理
    sc.delegate = self;
    // 滚动范围
    sc.contentSize = CGSizeMake(4 * HCWidth,HCHeight);
    // 分页
    sc.pagingEnabled = YES;
    // 弹簧
    sc.bounces = NO;
    // 禁用水平滚动条
    sc.showsHorizontalScrollIndicator = NO;
    // 将滚动视图添加
    [self.view addSubview:sc];

    // 添加图片
    for (int i = 0; i < 4; i++){

      imgArr = @[@"1",@"2",@"3",@"4"];
      // 图片
      UIImageView *imgV = [[UIImageView alloc]initWithFrame:CGRectMake(i*HCWidth, 0, HCWidth, HCHeight)];
      imgV.image = [UIImage imageNamed:imgArr[i]];
      
      // 设置用户交互属性
      imgV.userInteractionEnabled = YES;
      // 滚动视图添加图片
      [sc addSubview:imgV];
    

// i = 3 最后一个图片
if(i== 3){

        UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(150, 600, 80, 40)];
        btn.backgroundColor = [UIColor redColor];
        [btn addTarget:self action:@selector(abc) forControlEvents:UIControlEventTouchUpInside
         ];
        [imgV addSubview:btn];
    }

}

// 豆豆
pageC = [[UIPageControl alloc]initWithFrame:CGRectMake((HCWidth - 200)/2, 660, 200 ,40)];
// 豆豆的数量
pageC.numberOfPages = imgArr.count;
// 豆豆颜色
pageC.pageIndicatorTintColor = [UIColor blackColor];
//当前选中颜色
pageC.currentPageIndicatorTintColor = [UIColor orangeColor];
// 默认选中
pageC.currentPage = 0;
//将豆豆往滚动视图里加
[self.view addSubview:pageC];

}

// 视图已经滚动的方法
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

pageC.currentPage = sc.contentOffset.x/HCWidth;

NSLog(@"%lf",sc.contentOffset.x);

}
// 按钮点击方法
-(void)abc{

NSLog(@"123");

}
// 定时器 (1s -> 进入一次)
-(void)qqq{

NSLog(@"%d",k);
// set 方法 -> 设置 滚动视图的偏移量
[sc setContentOffset:CGPointMake(k *HCWidth, 0)];
k++;
if(k > 3){
    // 定时器停止

// [timer invalidate];
// // 禁止滚动
// sc.scrollEnabled =NO;
k=0;
}

}
@end

#############

#import “ViewController.h”
#import “Model.h”

#import “AFNetworking.h”
@interface ViewController (){
UIImageView *img;
UIScrollView *scr;
NSTimer *tim;
UIPageControl *pag;
int k;
}
@property (nonatomic,strong)NSMutableArray *arr;
@end

@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];

    self.arr=[[NSMutableArray alloc]init];

    AFHTTPSessionManager *manager=[[AFHTTPSessionManager alloc]init];

    [manager GET:@“http://123.126.40.109:7003/asmr/videos/A1100101.shtml” parameters:nil headers:nil progress:^(NSProgress * _Nonnull downloadProgress) {
    } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {

      NSLog(@"%@",responseObject);
      for (NSDictionary *dic in responseObject[@"result"]) {
          Model *mod=[[Model alloc]init];
          [mod setValuesForKeysWithDictionary:dic];
          [self.arr addObject:mod];
          
      }
      self->tim=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(click) userInfo:nil repeats:YES];
      [self->tim fire];
      self->scr=[[UIScrollView alloc]initWithFrame:self.view.frame];
      self->scr.pagingEnabled=YES;
      self->scr.delegate=self;
      self->scr.contentSize=CGSizeMake(self.arr.count* self.view.frame.size.width, self.view.frame.size.height) ;
      
      for (int i=0; i<self.arr.count; i++) {
          UIImageView *img=[[UIImageView alloc]initWithFrame:CGRectMake(i*self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)];
          img.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[self.arr[i]imageUrl]]]];
          
          img.userInteractionEnabled = YES;
          
          [self->scr addSubview:img];
          
      }
      [self.view addSubview:self->scr];
      self->pag=[[UIPageControl alloc]initWithFrame:CGRectMake(170, 700, 100, 30)];
      self->pag.numberOfPages=self.arr.count;
      self->pag.currentPage=0;
      self->pag.currentPageIndicatorTintColor=[UIColor redColor];
      self->pag.pageIndicatorTintColor=[UIColor blueColor];
      [self.view addSubview:self->pag];
    

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSLog(@"%@",error);
    }];

}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
pag.currentPage=scr.contentOffset.x/self.view.frame.size.width;
}
-(void)click{

[scr setContentOffset:CGPointMake(k *self.view.frame.size.width, 0)];
k++;
if(k > self.arr.count){
    
    k=0;
}

}

@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
滚动监听是指当用户滚动页面时,可以通过HTML、CSS和JS代码实现一些特定的动效或操作。其中,下滑隐藏指的是当页面向下滚动时,某个元素会逐渐隐藏直到消失不可见。 在HTML代码中,我们可以使用div元素来表示需要隐藏的元素。为了实现滚动监听,我们需要给这个div元素加上一个id属性,以便在JS代码中获取它。例如: <div id="hide-element">需要隐藏的内容</div> 在CSS代码中,我们给这个需要隐藏的元素设置一个初始的显示状态,比如display:block。然后可以使用一些CSS动画效果,比如transition和opacity,来实现元素的逐渐隐藏。例如: #hide-element { transition: opacity 0.5s ease; opacity: 1; } #hide-element.hide { opacity: 0; } 在JS代码中,我们需要监听页面的滚动事件,并判断滚动的位置是否超过了一定的阈值。当滚动超过阈值时,我们通过修改元素的class属性来实现元素的隐藏效果。例如: window.addEventListener('scroll', function() { var hideElement = document.getElementById('hide-element'); var scrollPosition = window.pageYOffset || document.documentElement.scrollTop; if (scrollPosition > 100) { hideElement.classList.add('hide'); } else { hideElement.classList.remove('hide'); } }); 上述代码中的scrollPosition > 100表示滚动的阈值为100px。当滚动超过100px时,会给隐藏元素添加一个hide的class,从而触发元素的隐藏动画。 综上所述,通过HTML、CSS和JS代码的配合,我们可以实现滚动监听下滑隐藏的效果。当页面向下滚动时,某个元素会逐渐隐藏,直到完全消失不可见。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值