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
  • 相关阅读:
    LeetCode "Jump Game"
    LeetCode "Pow(x,n)"
    LeetCode "Reverse Linked List II"
    LeetCode "Unique Binary Search Trees II"
    LeetCode "Combination Sum II"
    LeetCode "Divide Two Integers"
    LeetCode "First Missing Positive"
    LeetCode "Clone Graph"
    LeetCode "Decode Ways"
    LeetCode "Combinations"
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/5838549.html
Copyright © 2011-2022 走看看