zoukankan      html  css  js  c++  java
  • PlaceholderImageView

    PlaceholderImageView

    说明

    1. PlaceHolderImageView基于SDWebImage编写

    2. 给定一个图片的urlString,以及一个placeholderImage就可以优雅的显示图片加载效果

    效果

    源码

    PlaceholderImageView.h/.m
    //
    //  PlaceholderImageView.h
    //  SDWebImageViewPlaceHorder
    //
    //  Created by YouXianMing on 16/9/14.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface PlaceholderImageView : UIView
    
    /**
     *  Picture's url string.
     */
    @property (nonatomic, strong) NSString *urlString;
    
    /**
     *  The placeholder's image.
     */
    @property (nonatomic, strong) UIImage  *placeholderImage;
    
    /**
     *  Default is UIViewContentModeScaleAspectFill.
     */
    @property (nonatomic) UIViewContentMode placeholderImageContentMode;
    
    /**
     *  Default is UIViewContentModeScaleAspectFill.
     */
    @property (nonatomic) UIViewContentMode contentImageContentMode;
    
    @end
    ImageCell.h/.m
    //
    //  ImageCell.h
    //  SDWebImageViewPlaceHorder
    //
    //  Created by YouXianMing on 16/9/14.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    #import "PlaceholderImageView.h"
    
    @interface ImageCell : UITableViewCell
    
    @property (nonatomic, strong) PlaceholderImageView  *placeholderImageView;
    
    @end
    //
    //  ImageCell.m
    //  SDWebImageViewPlaceHorder
    //
    //  Created by YouXianMing on 16/9/14.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import "ImageCell.h"
    
    
    @implementation ImageCell
    
    - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    
        if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
            
            self.selectionStyle = UITableViewCellSelectionStyleNone;
            
            self.placeholderImageView                  = [[PlaceholderImageView alloc] initWithFrame:CGRectMake(0, 0, 150.f, 150.f)];
            self.placeholderImageView.placeholderImage = [UIImage imageNamed:@"1"];
            [self addSubview:self.placeholderImageView];
        }
        
        return self;
    }
    
    @end
    ViewController.m
    //
    //  ViewController.m
    //  SDWebImageViewPlaceHorder
    //
    //  Created by YouXianMing on 16/9/14.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import "ViewController.h"
    #import "UIImageView+WebCache.h"
    #import "PlaceholderImageView.h"
    #import "ImageCell.h"
    
    @interface ViewController () <UITableViewDelegate, UITableViewDataSource>
    
    @property (nonatomic, strong) UITableView  *tableView;
    @property (nonatomic, strong) NSArray      *pictures;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        
        [super viewDidLoad];
        
        self.pictures = @[@"https://pic.cnblogs.com/avatar/607542/20151017230728.png",
                          @"https://pic.cnblogs.com/face/607741/20140226202001.png",
                          @"https://pic.cnblogs.com/face/815231/20150923160245.png",
                          @"https://pic.cnblogs.com/face/993558/20160729092113.png",
                          @"https://pic.cnblogs.com/face/894202/20160217151952.png",
                          @"https://pic.cnblogs.com/face/968459/20160709111712.png",
                          @"https://pic.cnblogs.com/face/145865/20160210174306.png",
                          @"https://pic.cnblogs.com/face/796658/20151026090914.png",
                          @"https://pic.cnblogs.com/face/933887/20160629214007.png",
                          @"https://pic.cnblogs.com/face/125303/20130313094252.png",
                          @"https://pic.cnblogs.com/face/976232/20160730173456.png",
                          @"https://pic.cnblogs.com/face/969708/20160602120239.png",
                          @"https://pic.cnblogs.com/face/954541/20160705113740.png",
                          @"https://pic.cnblogs.com/face/799942/20150818204115.png"];
        
        PlaceholderImageView *pImageView = [[PlaceholderImageView alloc] initWithFrame:CGRectMake(0, 0, 150.f, 150.f)];
        [self.view addSubview:pImageView];
        pImageView.urlString = @"https://pic.cnblogs.com/avatar/607542/20151017230728.png";
        
        self.tableView            = [[UITableView alloc] initWithFrame:self.view.bounds];
        self.tableView.delegate   = self;
        self.tableView.dataSource = self;
        self.tableView.rowHeight  = 150.f;
        [self.view addSubview:self.tableView];
        
        [self.tableView registerClass:[ImageCell class] forCellReuseIdentifier:@"ImageCell"];
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
        return _pictures.count;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
        ImageCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ImageCell"];
        cell.placeholderImageView.urlString = _pictures[indexPath.row];
        
        return cell;
    }
    
    @end
  • 相关阅读:
    Qt判断文件夹是否存在并新建文件夹
    QFileDialog的使用
    C++11 std::chrono库详解
    disconnected no supported authentication methods available(server sent: publickey)
    connect函数的第5参数Qt::ConnectionType
    在C++ 中检查一个文件是否存在的几种方法
    win10打开便签
    1024. Palindromic Number (25)
    1023. Have Fun with Numbers (20)
    1021. Deepest Root (25)
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/5838549.html
Copyright © 2011-2022 走看看