UIScrollView+UIpageControl实现图片的循环滚动切换

本文介绍了一个使用Swift实现的iOS应用中滑动视图控制器的示例代码。该控制器利用UIScrollView实现无限循环的图片轮播效果,并通过UIPageControl指示当前页面的位置。

//

//  ViewController.m

//  ScrollView

//

//  Created by  on 15/6/1.

//  Copyright (c) 2015. All rights reserved.

//

#define kWidth [UIScreen mainScreen].bounds.size.width

#define kHeight ([UIScreen mainScreen].bounds.size.width)/2


#import "ViewController.h"


@interface ViewController ()<UIScrollViewDelegate>

{

    UIPageControl *page;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    [self _loadScroll];

}


- (void)_loadScroll{

    UIScrollView * scroll=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

    for(int i=0;i<4;i++){

        UIImageView * imageView=[[UIImageView alloc]initWithFrame:CGRectMake(kWidth*(i+1), 0, kWidth, kHeight)];

        imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i+1]];

        [scroll addSubview:imageView];

    }

    //把最后一张放在第一个位置

    UIImageView * imageView1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

    imageView1.image=[UIImage imageNamed:[NSString stringWithFormat:@"4.jpg"]];

    [scroll addSubview:imageView1];

    //把第一张放在最后一个位置

    UIImageView * imageView2=[[UIImageView alloc]initWithFrame:CGRectMake(kWidth*5, 0, kWidth, kHeight)];

    imageView2.image=[UIImage imageNamed:[NSString stringWithFormat:@"1.jpg"]];

    [scroll addSubview:imageView2];

    

    scroll.contentSize=CGSizeMake(kWidth*6, 0);

    scroll.showsHorizontalScrollIndicator=NO;

    scroll.pagingEnabled=YES;

    scroll.delegate=self;

    

    //让开始显示页面是第一幅图片

    CGPoint point=scroll.contentOffset;

    point.x=kWidth;

    scroll.contentOffset=point;

    [self.view addSubview:scroll];

    

    

    //设置一个页码显示的UIPageController显示当前滚动到第几个视图

    page=[[UIPageControl alloc]initWithFrame:CGRectMake(kWidth/2-100, kHeight*0.85, 200, 20)];

    page.pageIndicatorTintColor=[UIColor redColor];

    page.currentPageIndicatorTintColor=[UIColor greenColor];

    page.numberOfPages=4;

    [self.view addSubview:page];

}


- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

    CGPoint point=scrollView.contentOffset;

    if(point.x<=0){

        point.x=kWidth*4;

        scrollView.contentOffset=point;

    }

    if(point.x>=5*kWidth){

        point.x=kWidth;

        scrollView.contentOffset=point;

    }

    NSInteger pages=point.x/(kWidth)-1;

    page.currentPage=pages;

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值