第十课程 多线程 滚动视图

//
//  ViewController.m
//  ImageDownShow
//
//  Created by KEN on 15/7/23.
//  Copyright (c) 2015年 Tin. All rights reserved.
//

#import "ViewController.h"
#import "ImageViewController.h"
@interface ViewController ()

@end

@implementation ViewController

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if( [ segue.destinationViewController isKindOfClass:[ImageViewController class] ])
    {
        ImageViewController * ivc = ( ImageViewController *) segue.destinationViewController ;

        NSString * str = nil ;

        if( [segue.identifier isEqualToString:@"num1"])
        {
            str = @"http://f0.topit.me/0/f8/68/1122299417ae868f80o.jpg" ;
        }else
        {
            str = @"http://d.hiphotos.baidu.com/zhidao/pic/item/f3d3572c11dfa9ecd1eaad8762d0f703908fc15e.jpg" ;
        }

        ivc.imageURL = [ NSURL URLWithString: str]   ;
        ivc.title = segue.identifier ;

    }

    NSLog(@"%.2f" , 1.24444 );
}

@end
#import <UIKit/UIKit.h>

@interface ImageViewController : UIViewController

@property ( nonatomic , strong) NSURL * imageURL ;

@end
//
//  ImageViewController.m
//  ImageDownShow
//
//  Created by KEN on 15/7/23.
//  Copyright (c) 2015年 Tin. All rights reserved.
//

#import "ImageViewController.h"

@interface ImageViewController () <UIScrollViewDelegate>

@property ( nonatomic , strong) UIImageView * imageView ;
@property ( nonatomic , strong) UIImage * image ;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *indicator;
@end

@implementation ImageViewController

-(void) setImageURL:(NSURL *)imageURL
{
    _imageURL = imageURL ;
//    self.image = [ UIImage imageWithData:[NSData dataWithContentsOfURL:self.imageURL]] ;
    [self startDownloadingImage] ;
}

-(void) startDownloadingImage
{
    self.image = nil ;
    if( self.imageURL){

        NSURLRequest * request = [ NSURLRequest requestWithURL:self.imageURL] ;
        NSURLSessionConfiguration * configuration = [ NSURLSessionConfiguration ephemeralSessionConfiguration];
        NSURLSession * session = [ NSURLSession sessionWithConfiguration:configuration] ;
        NSURLSessionDownloadTask * task = [ session downloadTaskWithRequest:request completionHandler:^(NSURL *localFile, NSURLResponse *response, NSError *error) {
            if(!error)
            {
                if( [request.URL isEqual:self.imageURL])
                {
                    UIImage * image =[ UIImage imageWithData:[NSData dataWithContentsOfURL:localFile]] ;
                    dispatch_async(dispatch_get_main_queue() , ^{
                        self.image = image ;
                    });
                }
            }
        }] ;

        [task resume];
    }

}

-(UIView * )   viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.imageView ;
}

-(void) viewDidLoad
{
    [super viewDidLoad];
    [self.scrollView addSubview:self.imageView] ;

    [self.indicator startAnimating];
}

-( UIImageView * ) imageView
{
    if( !_imageView) _imageView  = [[ UIImageView alloc] init ] ;
    return _imageView ;
}

-( UIImage * ) image
{
    return  self.imageView.image ;
}

-(void) setImage:(UIImage *)image
{
    self.imageView.image = image ;
    [self.imageView sizeToFit];
    self.scrollView.contentSize = self.image? self.image.size : CGSizeZero;
    [self.indicator stopAnimating];
}

-(void) setScrollView:(UIScrollView *)scrollView
{
    _scrollView = scrollView ;
    _scrollView.minimumZoomScale = 0.2 ;
    _scrollView.maximumZoomScale = 2 ;
    _scrollView.delegate = self ;

    self.scrollView.contentSize = self.image? self.image.size : CGSizeZero;
}

@end
时间: 2024-11-06 07:22:13

第十课程 多线程 滚动视图的相关文章

IOS7笔记-10、多线程、滚动视图

1.滚动视图使用方方法: 1 @interface ImageViewController ()<UIScrollViewDelegate>//声明委托 2 @property (strong, nonatomic) UIImageView *imageView; 3 @property (strong, nonatomic) UIImage *image; 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 5 @

从零开始学android&lt;ScrollView滚动视图.十八.&gt;

由于手机屏幕的高度有限,所以如果面对组件要显示多组信息的时候,ScrollView视图(滚动视图)可以有效的安排这些组件,浏览时可以自动的进行滚屏的操作. android.widget.ScrollView类继承结构如下所示: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.ScrollView ScrollView的特点: Sc

Android零基础入门第61节:滚动视图ScrollView

原文:Android零基础入门第61节:滚动视图ScrollView 前面几期学习了ProgressBar系列组件.ViewAnimator系列组件.Picker系列组件和时间日期系列组件,接下来几期继续来学习常见的其他组件. 一.ScrollView概述 从前面的学习有的同学可能已经发现,当拥有很多内容时屏幕显示不完,显示不全的部分完全看不见.但是在实际项目里面,很多内容都不止一个屏幕宽度或高度,那怎么办呢?那就需要本节学习的ScrollView来完成. 在默认情况下,ScrollView只是

Cocos2d-X使用CCScrollView创建滚动视图

CCScrollView可以使游戏有滚动视图的效果,并且可以通过滚动视图切换游戏场景,滚动视图常用于游戏中选择关卡 实例1:使用CCScrollView创建一个简单的滚动视图 首先创建一个ScrollView类 然后在ScrollView.h中添加下面的代码 #ifndef __ScrollView_H__ #define __ScrollView_H__ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_CC

UIScrollView 按页面滚动视图 UIPageControl

1.UIScrollView是可以滚动的view,UIView本?身不能滚动,子类UIScrollview拓展了滚动?方?面的功能. 2.UIScrollView是所有滚动视图的基类.以后的UITableView,UITextView等视图都是继承于该类. 3.UIScrollview主要专?长于两个?方?面: (1).滚动:contentSize?大于frame.size的时候,能够滚动. (2).缩放:?自带缩放,可以指定缩放倍数. UIScrollView滚动的相关属性 1.content

滚动视图性能优化的几种方式

目的: - 我们每次发布IOS时都会有一些新特性页面,当然还有广告条都会用到滚动视图.那么如何性能优化呢?目前就我所知有两种方案,一种就是常用的2-3张图片重复利用,另一种就是今天主要讲的利用UICollectionView来做. - 今天就做一个新特性页面为例 步骤: 方法一:利用UICollectionView 1.UICollectionView继承UIScrollView,我们要用滚动视图,肯定会用到ScrollView,而如何我们把collectionView中的一个Item当作滚动视

滚动ScrollView---数组存放图片,设置3个滚动视图,用来滑动多张图片

问题描述:循环滑动切换n多张图片,不事先加载完成,现用现取. 解题思路:将要显示的图片存放在数组中,设置3个滚动视图,左边视图,正在显示的视图,右边视图 实现代码如下: //  ViewController.m #import "ViewController.h" #define kWith self.view.frame.size.width #define kHeight self.view.frame.size.height @interface ViewController (

UI开发----UIScrollView和UIPageControl简单模拟滚动视图

//  Created By 郭仔 //================================================== 师傅领进门,修行在个人!自学才是王道! //================================================== UIScrollView: UIScrollView * scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(20, 50, 200, 200)]

UGUI 滚动视图

滚动视图是常用的UI控件之一,它是由多个基本控件组合而成.如图 ================================================================================== 两个必备控件简单介绍: Scroll Rect控件: Horizontal 是否支持水平滚动 Vertical 是否支持上下滚动 MovementType 移动的方式: 感觉设置都没什么用处Unrestricted 自由的Elastic 有弹性的Clamped 夹紧的