精华内容
下载资源
问答
  • 1.三个页面,循环滑动,当滑动到最后一页,继续滑动,回到第一页 2.点击图片,弹出提示,当前所在图片的计数 3.pageControl,显示当前滑动位置
  • PageControl

    2015-08-06 08:47:00
    // UI7PageControl ///Users/lanouhn/Downloads // Created by lanouhn on 15-8-5. // Copyright (c) 2015年 lanouhn. All rights reserved. // #import "RootView.h" @implementat
    //
    
    //  RootView.m
    //  UI7PageControl
    ///Users/lanouhn/Downloads
    //  Created by lanouhn on 15-8-5.
    //  Copyright (c) 2015年 lanouhn. All rights reserved.
    //

    #import "RootView.h"

    @implementation RootView


    - (instancetype)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            [self addSubviews];
        }
        return self;
    }

    - (void)addSubviews
    {
        self.backgroundColor = [UIColor whiteColor];
        
        
        //创建scrollView
        self.scroller = [[UIScrollView alloc] initWithFrame:self.frame];
        //循环拿到image 并加到imageView上
        for (int i = 0 ; i < 23; i++) {
            
            //创建image
            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"tu5377_%d.jpg" , i + 2]];
            
            //创建imageView
            UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(i * self.frame.size.width, 0, self.frame.size.width, self.frame.size.height)];
            
            //把图片贴到贴到imageView
            imageView.image = image;
            
            //imageView添加到scrollerView 上
            [self.scroller addSubview:imageView];
            [imageView release];
            
        }
        
        //设置scrollView的内容视图大小
       
        self.scroller.contentSize = CGSizeMake(23 * self.frame.size.width, self.frame.size.height);
        
        
        //设置整页滑动
        self.scroller.pagingEnabled = YES;
        
        
        [self addSubview:self.scroller];
        [self.scroller release];
        
        
        //pch
        //$(SRCROOT)/UI7PageControl/MMM.pch
        
        
        //添加黑色背景
        /*
        self.blackView = [[UIView alloc] initWithFrame:self.frame];
        self.blackView.backgroundColor = [UIColor blackColor];
        [self addSubview:self.blackView];
        [self.blackView release];
        */
        
        //创建pageControl
        self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, self.frame.size.height - kPageControlHeight, self.frame.size.width, kPageControlHeight)];
        
        self.pageControl.backgroundColor = [UIColor lightGrayColor];
        [self addSubview:self.pageControl];
        
        //pageControl   默认0个点
        //给pageControl设置点的个数
        self.pageControl.numberOfPages = 23;
        
        //设置,默认选中的点
    //    self.pageControl.currentPage = 0;
        //设置 当前选中点的颜色
        self.pageControl.currentPageIndicatorTintColor = [UIColor redColor];
        //设置未选中的颜色
        self.pageControl.pageIndicatorTintColor = [UIColor blackColor];
        
        //添加点击事件
    //    [self.pageControl addTarget:self action:@selector(pageControlAction:) forControlEvents:UIControlEventValueChanged];
        
        //默认交互关闭
        self.pageControl.userInteractionEnabled = YES;
        
        
    }

    //#pragma mark - pageControl点击事件
    //- (void)pageControlAction:(UIPageControl *)sender
    //{
    //    
    //}
    /*
     
     The quick brown fox jumps over a lazy dog
     The quick brown fox jumps over a lazy dog
     
     
     
     */



    - (void)dealloc
    {
        [_scroller release];
        [_blackView release];
        [_pageControl release];
        [super dealloc];
    }



    @end

    //
    //  RootViewController.m
    //  UI7PageControl
    //
    //  Created by lanouhn on 15-8-5.
    //  Copyright (c) 2015年 lanouhn. All rights reserved.
    //

    #import "RootViewController.h"

    @interface RootViewController ()<UIScrollViewDelegate>

    @end

    @implementation RootViewController


    - (void)loadView
    {
        [super loadView];
        self.rootView = [[RootView alloc] initWithFrame:[UIScreen mainScreen].bounds];
        self.view = self.rootView;
    }

    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        
        
        //给scrollerView设置代理对象
        self.rootView.scroller.delegate = self;
        
        [self.rootView.pageControl addTarget:self action:@selector(pageControlAction:) forControlEvents:UIControlEventValueChanged];
        
       
    }

    #pragma mark - ScrollerView Delegate
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    {
        NSLog(@"减速结束");
        //拿到偏移量
        CGPoint offset = scrollView.contentOffset;
        //算出偏移了几个
        NSInteger currentIndex = offset.x / self.rootView.frame.size.width;
        //根据currentIndex 修改pageControl显示点得位置
        self.rootView.pageControl.currentPage = currentIndex;
        
        
        
        
        
        
    }

    - (void)pageControlAction:(UIPageControl *)sender
    {
        //获取到当前pageControl显示的下标
        NSInteger currentIndex =  self.rootView.pageControl.currentPage;
        
        //根据下标算出 scollerView 的偏移量
        NSInteger x = currentIndex * self.rootView.frame.size.width;
        
        //根据偏移量设置scollerView 的contentOffset     这个对象的改变只能通过          CGPointMake
        self.rootView.scroller.contentOffset = CGPointMake(x, 0);
        
        
        self.rootView.scroller.contentOffset = CGPointMake(sender.currentPage * self.rootView.frame.size.width, 0);
        
        
    }


    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
    {
        NSLog(@"拖拽结束");
    }

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        NSLog(@"滑动中.....");
    }
    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
    {
        NSLog(@"将要开始减速");
    }

    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
    {
        NSLog(@"将要开始拖拽");
    }

    - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
    {
        NSLog(@"将要结束拖拽");
    }



    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }

    /*
    #pragma mark - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
    }
    */

    @end

    //
    //  AppDelegate.m
    //  UI7PageControl
    //
    //  Created by lanouhn on 15-8-5.
    //  Copyright (c) 2015年 lanouhn. All rights reserved.
    //

    #import "AppDelegate.h"
    #import "RootViewController.h"
    @interface AppDelegate ()

    @end

    @implementation AppDelegate


    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        
        
        
        
        //用NSUserDefult从文件里取内容 跟创建的对象无关
        NSUserDefaults *sss = [NSUserDefaults standardUserDefaults];
        NSString *str = [sss objectForKey:@"key1"];
        NSLog(@"str = %@" , str);
        
        
        NSLog(@"**************");
        NSLog(@"%@" , NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject);
        NSLog(@"**************");
        
        //判断是否是第一次运行在该模拟器上
        if ([str isEqualToString:@"刘敦辉"]) {
            
            //用来存储应用程序的一些小的配置信息
            NSUserDefaults *stand = [NSUserDefaults standardUserDefaults];
            
            //向文件里边存储 key - valve 值
            [stand setObject:@"刘敦辉" forKey:@"key1"];
            [stand setObject:@"泰迪" forKey:@"key2"];
            [stand setObject:@"宪政" forKey:@"key3"];
            
            //同步操作  马上把这个键值对保存  文件夹查看  command + shift + G
            [stand synchronize];
            
            RootViewController *rootVC = [[RootViewController alloc] init];
            self.window.rootViewController = rootVC;
            [rootVC release];

        }else{
            
            NSLog(@"程序非第一次运行在该模拟器上运行");
            
        }
        
        
        return YES;
    }

    - (void)applicationWillResignActive:(UIApplication *)application {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
    }

    - (void)applicationDidEnterBackground:(UIApplication *)application {
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }

    - (void)applicationWillEnterForeground:(UIApplication *)application {
        // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
    }

    - (void)applicationDidBecomeActive:(UIApplication *)application {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }

    - (void)applicationWillTerminate:(UIApplication *)application {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    }

    @end

    展开全文
  • }else if(currentPage==([imageArray count]+1)){//如果最后加一,也就是开始循环的第一个 [self.myScrollView scrollRectToVisible:CGRectMake(myScrollView.frame.size.width, myScrollView.frame.origin.y, ...

    .h文件

    @interface MainViewController : UIViewController<UIScrollViewDelegate>{
    
        BOOL isDeceleration;
    }
    
    @property (nonatomic, retain)UIScrollView * myScrollView;
    @property (nonatomic, retain)NSMutableArray * imageArray;
    @property (nonatomic, retain) NSTimer * time;
    @property (nonatomic, retain) UIPageControl * myPageControl;
    
    @end

    .m文件

    #import "Main<span style="font-family: Arial, Helvetica, sans-serif;">ViewController.h"</span>
    
    @interface MainViewController ()
    
    @end
    
    @implementation ViewController
    @synthesize myScrollView,imageArray,time,myPageControl;
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    #pragma mark - ScrollView Delegate
    -(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
        isDeceleration = YES;
        
    }
    -(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
            
            [self scrollViewDidEndDecelerating:myScrollView];
    }
    
    
    -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    {
        isDeceleration = NO;
        int currentPage = floor((self.myScrollView.contentOffset.x-self.myScrollView.frame.size.width/([imageArray count]+2))/self.myScrollView.frame.size.width)+1;
       
        if (currentPage==0) {
            [self.myScrollView scrollRectToVisible:CGRectMake(myScrollView.frame.size.width*[imageArray count], myScrollView.frame.origin.y, myScrollView.frame.size.width, myScrollView.frame.size.height) animated:NO];
            
        }else if(currentPage==([imageArray count]+1)){//如果最后加一,也就是开始循环的第一个
            [self.myScrollView scrollRectToVisible:CGRectMake(myScrollView.frame.size.width, myScrollView.frame.origin.y, myScrollView.frame.size.width, myScrollView.frame.size.height) animated:NO];
    
        }
    
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view from its nib.
        self.imageArray = [[[NSMutableArray alloc]initWithObjects:@"t_g_egg1_no@2x.png",@"t_g_egg1@2x.png",@"t_g_image_egg0.png",@"t_g_image_quan0@2x.png",@"y_g_tip_image_egg1.png",@"y_g_tip_image_quan1@2x.png",nil]autorelease];
        
        self.myScrollView = [[[UIScrollView alloc]initWithFrame:CGRectMake(20, 20, 280, 360)]autorelease];
        myScrollView.contentSize = CGSizeMake(myScrollView.frame.size.width * ([imageArray count] + 2), myScrollView.frame.size.height);
        myScrollView.delegate = self;
        myScrollView.bounces = YES;
        myScrollView.pagingEnabled = YES;
        myScrollView.userInteractionEnabled = YES;
        [self.view addSubview:myScrollView];
        
    //把最后一张图片放到首页的位置
        UIImageView * imgView =[[UIImageView alloc]initWithFrame:CGRectMake(myScrollView.frame.size.width *0, myScrollView.frame.origin.y, myScrollView.frame.size.width, myScrollView.frame.size.height)];
        imgView.image = [UIImage imageNamed:[imageArray objectAtIndex:[imageArray count]-1]];
        [myScrollView addSubview:imgView];
        [imgView release];
        
    //从第一张开始加
        for (int i = 0; i < [imageArray count]; i++) {
    
            UIImageView * imgView1 =[[UIImageView alloc]initWithFrame:CGRectMake(myScrollView.frame.size.width *(i+1), myScrollView.frame.origin.y, myScrollView.frame.size.width, myScrollView.frame.size.height)];
            imgView1.image = [UIImage imageNamed:[imageArray objectAtIndex:i]];
            [myScrollView addSubview:imgView1];
            [imgView1 release];
        }
    //把第一张图片放到最后的位置    
        UIImageView * imgView0 =[[UIImageView alloc]initWithFrame:CGRectMake(myScrollView.frame.size.width * ([imageArray count]+1), myScrollView.frame.origin.y, myScrollView.frame.size.width, myScrollView.frame.size.height)];
        imgView0.image = [UIImage imageNamed:[imageArray objectAtIndex:0]];
        [myScrollView addSubview:imgView0];
        [imgView0 release];
        
        
        [myScrollView setContentOffset:CGPointMake(0, 0)];
        [myScrollView scrollRectToVisible:CGRectMake(myScrollView.frame.size.width, myScrollView.frame.origin.y, myScrollView.frame.size.width, myScrollView.frame.size.height) animated:NO];
        
    //与pagecontrol结合使用
        self.myPageControl =[[UIPageControl alloc]initWithFrame:CGRectMake(30, 360, 260, 30)];
        myPageControl.currentPage = 0;
        myPageControl.numberOfPages = [imageArray count];
        [self.view addSubview:myPageControl];
        [myPageControl release];
        
    //加入定时器   
       self.time = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(pageChange) userInfo:nil repeats:YES];
        
    }
    
    -(void)pageChange
    {
        if (isDeceleration==NO) {
            [myScrollView setContentOffset:CGPointMake(myScrollView.contentOffset.x+280, myScrollView.contentOffset.y) animated:YES];
            CGFloat pageWidth = myScrollView.frame.size.width;
            int page = floor((myScrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
            myPageControl.currentPage = page;
            if (page==[imageArray count]) {//如果到最后一页,设置currentPage=0;重新开始
                  myPageControl.currentPage = 0;
            }
        }
    }
    
    
    - (void)viewDidUnload
    {
        [super viewDidUnload];
        // Release any retained subviews of the main view.
        // e.g. self.myOutlet = nil;
        [self setMyScrollView:nil];
        [self setImageArray:nil];
        [self setMyPageControl:nil];
    }
    
    -(void)dealloc
    {
        [myScrollView release];
        [imageArray release];
        [time release];
        [myPageControl release];
        myScrollView.delegate = nil;
        [super dealloc];
    
    }
    
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
    
    @end

    原文地址:http://blog.sina.com.cn/s/blog_b8e97683010189he.html


    解决动画未加载完切换到头尾页面而无法正常显示的问题:

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        int offsetX = (int)myScrollView.contentOffset.x;
        if (offsetX - myScrollView.contentOffset.x == 0 && offsetX % (int)VIEWWIDTH == 0) {
            [myScrollView setUserInteractionEnabled:YES];
        }
        else{
            [myScrollView setUserInteractionEnabled:NO];
        }
    }


    展开全文
  • #define KIMGCOUNT 4 转载于:https://www.cnblogs.com/Lovexiaohuzi/p/5474593.html

    #define KIMGCOUNT 4

     

    转载于:https://www.cnblogs.com/Lovexiaohuzi/p/5474593.html

    展开全文
  • ios-自定义PageControl.zip

    2019-07-11 18:57:33
    自定义的一个PageControl,类似斗鱼首页的PageControl,可以循环
  • ios UIScrollView PageControl NSTimer

    热门讨论 2012-11-14 21:54:33
    1.UIScrollView循环滑动,滑动到最后一页时,继续滑动,回到第一页 2.开始手动滑动时,停止定时器,手动滑动结束后停止定时器 3.向前滑之后,自动向前滑动 4.向后滑动之后,自动向后滑动
  • (九)UIScrollView和PageControl的分页

    千次阅读 2015-02-05 14:23:52
    为了自动切换页码,注意的是不要直接修改pageControl的currentPage,因为前面的委托函数会实时检测当前位置,会引起冲突,应该弄一个临时变量来获取和达到下一页,真正的currentPage依然由委托实现。 - (void)...

    涉及到内容的滚动与拖拽,使用UIScrllView。

    对于滚动的多张图片,由于超出屏幕,应该使用代码添加代码。

    添加的细节是:图片的宽高即为滚动视图的宽高,图片的y=0,x=图片的序号乘以图片的宽度。

    为了美观,还应该去掉水平滚动条,代码为:

    self.scrollView.showsHorizontalScrollIndicator = NO;

    一定不要忘了设定滚动范围:这里仅仅进行水平滚动,因此垂直滚动范围为0,即当前视图宽度。

    CGFloat contentW = imageCount * self.imageW;
    self.scrollView.contentSize = CGSizeMake(contentW, 0);

    这样可以实现多张图片,但是滑动时无法自动停留在一个图片上,而会卡在中间,这需要分页来解决。

    self.scrollView.pagingEnabled = YES;
    启动分页以后,会自动根据ScrollView的宽度进行分页。

    为了用户体验,应该用小圆点来指示总页数和当前位置,这个控件称为Page Control。

    但是在动态添加图片时会盖住这个控件,因此可以采用另一个插入方法,指定将视图插入到index=0处(最顶层,也就是最下层)。

    [self.scrollView insertSubview:imageView atIndex:0];

    另一个细节,为了将Page Control设置在UIScrollView的上层,又要在其上方,直接拖动会使得UIScrollView将其吸收,可以通过直接修改y值来实现拖动。

    为了得到当前页码供Page Control切换,应该设置ScrollView的代理,设置代理的另一种方法是在ScrollView上右键拖线到当前根视图View。

    Tip:代理方法的命名规范,以类名开头

    为了算出页码,可以根据contentOffset方法来判断。

    用下面的方法来切换页码即可:页码总数用numberOfPages来设置。

    self.pageControl.currentPage = self.scrollView.contentOffset.x / self.imageW;

    这样的缺点是如果右边的图片占优势,无法动态的切换页码,为了动态的切换原点,应该在contentOffset基础上加上一半图片宽度,来达到准确修改页码。

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
        self.pageControl.currentPage = (self.scrollView.contentOffset.x + self.imageW * 0.5) / self.imageW;
    }

    但是这样似乎会出现问题,使劲点击小圆点圆点会前进。只需要禁用Page Control的Enable属性即可解决。


    实现自动翻页:

    要借助定时器,NSTimer或者CADisplayLink,后者适合用来做游戏,可以实现短时间间隔。做事的频率低,用NSTimer。因此这里使用NSTimer。

    Tip:schedu...方法不用使用fire可以自动开始。

    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];

    Tip:定时器执行的是target的@selector中的方法。

    Tip:ScrollView自带动画。方法有animated参数。

    为了自动切换页码,注意的是不要直接修改pageControl的currentPage,因为前面的委托函数会实时检测当前位置,会引起冲突,应该弄一个临时变量来获取和达到下一页,真正的currentPage依然由委托实现。

    - (void)nextImage{
        //1.增加Page Control的页码
        int page = 0;
        if (self.pageControl.currentPage == imageCount - 1) {
            page = 0;
        }else{
            page = self.pageControl.currentPage + 1;
        }
        CGPoint offset = CGPointMake(page * self.imageW, 0);
        [self.scrollView setContentOffset:offset animated:YES];
    }

    问题一:

    单线程工作,如果有其他滚动操作,就不能自动翻页了。

    问题二:

    如果按住页码不让跳,定时器无法跳转,会累计定时器的次数,在松手时一次性跳完。


    问题二的解决方法是在用户拽住的时候停止定时器,松手的时候再开启定时器,应该用代理。

    Tip:定时器禁用后无法再启用,因此应该重新定义定时器。

    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
        [self.timer invalidate];
        self.timer = nil;
    }
    
    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
        self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];
    }

    问题一的解决:

    一个程序默认会开一个线程(主线程),处理UI界面和事件。

    注意,UI界面的刷新只能交给主线程来做。

    因此应该时分复用来处理每个内容。

    应该通过获取当前的消息循环(RunLoop),来将定时器的优先级提高。

    Tip:在学习一个方法时,如果一个参数不是枚举而是字符串,那么字符串一般是和这个方法在同一个文件中用宏进行定义的,因此可以在上面查到。

    提高定时器优先级的方法为:

    [[NSRunLoop currentRunLoop ] addTimer:self.timer forMode:NSRunLoopCommonModes];

    Tip:以后使用定时器一定要小心,否则容易造成定时器不响应而引发问题。


    问题三:如果图片的数量非常的多,那么提前创建这么多ImageView是不明智的。

    一种方法是用到的时候再创建(类似TableCell的思路),另一种方法是循环利用这些ImageView。

    用三个ImageView就可以实现这种循环。

    无限滚动的另一个好处就是最后一张向右拖动到第一张,第一张向左拖动到最后一张。

    重点是代理方法(didScroll)。

    这种方式适用于大量图片。

    展开全文
  • iOS开发过程中会经常遇到scrollView与pageControl混合使用的情况。scrollView与pageControl的配合逻辑代码一般是写在以下代理函数中的:-(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView即在...
  • // 添加到运行循环 [[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes]; pageCon1 = [[UIPageControl alloc]initWithFrame:CGRectMake(250, 180, 80, 30)]; [pageCon1 ...
  • JScrollView_PageControl_AutoScroll的实现 这个有个缺陷就是如果图片只有一张时,也会自动循环播放,且pageController也会有一个小点点,这个地方需要改造!!!! 在初始化时会生成一个imageView的数组,讲当前所有...
  • 循环ScrollDemo

    2014-04-11 17:54:00
    UIScrollView和UIPageContol控件写的一个scrollView可以循环播放的demo。
  • 刷新UI,从线程:监听事件),如果对一个UI控件持续做拖拽操作,那么主线程被当前的操作占用后,其他控件就不能自动刷新UI了(例如其他scrollView实现的自动图片翻页效果的刷新),可以通过高速当前消息循环对象,在...
  • 首先: 设置使用UIScrollViewDelegate代理协议 其次需要初始化全局变量: var picArray = [String]() //图片数量 ... let pageControl = UIPageControl() var timer = NSTimer() 再次: ...
  • 使用scrollView以及pageControl,NSTimer实现图片轮播 3.代码(控件界面和运行效果见文后图) // // ViewController.m // 05-图片轮播 // // Created by RHP on 15/1/2. // Copyright (c) 2015年...
  • #pragma mark - pagecontrol事件 // 这个是点击小圆点条进行切换,到边不能循环 - (void)pageControlTouched { // 点击的时候停止计时 [self.kvTimer setFireDate:[NSDate distantFuture]]; // 滑到指定页面 ...
  • 5.pageControl 总页数 :numberOfPages 当前页: currentPage 6.NStimer 1 > timerWithTimeInterval 手工把 timer 加入到消息循环 NSTimer *timer = [NSTimer timerWithTimeInterval:...
  • scrollView的循环滚动

    2015-05-12 16:53:07
    无限循环滚动,手动,自动滚动,点击识别.pagecontrol
  • JScrollView_PageControl_AutoScroll的实现 这个有个缺陷就是如果图片只有一张时,也会自动循环播放,且pageController也会有一个小点点,这个地方需要改造!!!! 在初始化时会生成一个imageView的数组,讲当前所有...
  • 前言:最近学了下UIScrollView的用法,然后自己实现了一个常见的APP首次打开的引导页面效果,... 主要用到的就是ScrollView,PageControl这两种控件。实现思路:把主页面的根视图设置成一个ImageView,用来显示背景图片,然
  • iOS图片的循环滑动

    2015-10-08 10:33:49
    iOS图片的循环滑动使用计时器,scrollView,pageControl完成图片的自动,手动循环滑动该代码块中用到的图片直接使用的第三方SDWebImage异步加载网络图片,如有需要,可直接换成本地图片.h文件 @interface ...
  • 源码IanScrollView,图片轮播UIScrollView无限循环滚动,这是利用UIScrollView实现的图片无限循环滚动效果,在很多应用上都很常见。获取网络图片,图片可以点击,控制是否显示pageControl,控制是否自动滚动,可以...
  • scrollView 循环滚动

    2015-08-14 18:55:35
    #import "QHMainController.h" @interface QHMainController () @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;...@property (weak, nonatomic) IBOutlet UIPageControl *pageControl; @property(n
  • 一、UIScrollView滚动视图 #import "MainViewController.h" @interface MainViewController ()UIScrollViewDelegate> @end @implementation MainViewController ...- (void)viewDidLoad {
  •  实现自动循环滚动的UIScrollView,也支持手动循环滚动。利用 NSTimer 控制Scroll View的自动滚动。 小编注:由于使用了UIPageControl 的setPageIndicatorTintColor方法设置PageControl的点颜色,所以本代码仅支持...
  • 无限循环ScrollView

    2016-07-18 10:29:47
    无限循环ScrollView(方法一)实现无限循环ScrollView效果,对于一些人来说,确实有点头痛。最近我也碰到了这类问题,在网上查了好多资料,也烦了好久。虽然网上有详解,不过讲解的过于简单;有demo,但功能也没有达到...
  • 无限循环控件是一个常常用到的一个控件,尤其是一些广告或者应用内容公告通知,或者新闻滚动的设计,都是必备的。这种控件网上也有很多,也有很多可以自定义的版本,功能非常强大。但对于我们开发者来说,在具体的...
  • 一个简单实用的循环cycle页面视图和自动轮播图,包括iOS的pageControl,支持Objective-C和swift。
  • 一般是利用UIScrollView承载播放的图片,通过NSTimer方法和UIPageControl的currentPage数值改变达到播放效果。 在你的.h文件中声明控件属性(记得加上 ... UIPageControl *pageControl; UIScrollView *scrollView;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,219
精华内容 487
关键字:

pagecontrol循环