Skip to content

An easy way to browse photo(image) for iOS.

License

Notifications You must be signed in to change notification settings

dehuichen/PYPhotoBrowser

Repository files navigation

PYPhotoBrowser

Build Status Pod Version Pod Platform Pod License

  • An easy way to browse photo(image) for iOS.
  • iOS trung sử dụng đơn giản hình ảnh trình duyệt.

QQ chat room

Contents

Hiệu quả đồ

  • Hình ảnh đã tuyên bố ( internet hình ảnh xem, nước chảy bố cục )

    (img)

  • Hình ảnh chưa tuyên bố ( bản địa hình ảnh thượng truyền \ tuyên bố \ xem trước )

    (img)

Này đó app sử dụng PYPhotoBrowser ( lục tục đổi mới )

Hương mạch Sán y di động làm công Ái ngưu cổ Huệ tâm danh đao

Duy trì này đó trạng thái

  • Đã tuyên bố ( internet hình ảnh xem )

(img)

  • Chưa tuyên bố ( bản địa hình ảnh thượng truyền \ tuyên bố \ xem trước )

    (img)

Duy trì này đó bố cục

  • Nước chảy bố cục,Tuyến tính bố cục

Duy trì này đó thủ thế

  • Đơn đánh,Song kích,Ghép lại,Xoay tròn,Kéo túm,Sườn hoạt

Địa phương nào dùng đến cái này dàn giáo

  • Chủ yếu dùng cho xã giao app, dùng cho hiện ra một tổ hình ảnh
  • Dưới là các lưu hành xã giao app bộ phận chụp hình

(img1) (img1) (img1) (img1) (img1) (img1)

Ỷ lại này đó kẻ thứ ba dàn giáo

  • Hình ảnh xem ỷ lại dàn giáo
    • MBProgressHUD
    • SDWebImage
    • DACircularProgress
    • FLAnimatedImage

PYPhotoBrowser dàn giáo chủ yếu loại

PYPhotosView ( nhanh chóng sử dụng )

@interfacePYPhotosView:UIScrollView

/** đại lý*/
@property(nonatomic,weak)id<PYPhotosViewDelegate> delegate;

/** internet hình ảnh mô hình số tổ*/
@property(nonatomic,copy)NSArray*photos;
/** internet hình ảnh địa chỉ số tổ ( súc lược đồ )*/
@property(nonatomic,copy)NSArray*thumbnailUrls;
/** internet hình ảnh địa chỉ số tổ ( nguyên đồ )*/
@property(nonatomic,copy)NSArray*originalUrls;
/** bản địa album hình ảnh số tổ ( cam chịu nhiều nhất vì chín trương, đương truyền vào hình ảnh số tổ trưởng độ vượt qua chín trương khi, lấy trước chín trương )*/
@property(nonatomic,strong)NSMutableArray*images;

/** sở hữu hình ảnh trạng thái ( cam chịu vì đã tuyên bố trạng thái )*/
@property(nonatomic,assign) PYPhotosViewState photosState;
/** hình ảnh bố cục ( cam chịu vì nước chảy bố cục )*/
@property(nonatomic,assign) PYPhotosViewLayoutType layoutType;
/** hình ảnh phân trang chỉ thị loại hình ( cam chịu vì pageControll. Đương hình ảnh vượt qua chín trương, sửa vì label biểu hiện )*/
@property(nonatomic,assign) PYPhotosViewPageType pageType;

/** hình ảnh khoảng thời gian ( cam chịu vì 5 )*/
@property(nonatomic,assign)CGFloatphotoMargin;
/** hình ảnh khoan ( cam chịu vì 70)*/
@property(nonatomic,assign)CGFloatphotoWidth;
/** hình ảnh cao ( cam chịu vì 70)*/
@property(nonatomic,assign)CGFloatphotoHeight;

/** mỗi hành nhiều nhất cái số ( cam chịu vì 3 ), đương hình ảnh bố cục vì tuyến tính bố cục khi, này thiết trí mất đi hiệu lực*/
@property(nonatomic,assign)NSIntegerphotosMaxCol;
/** đương hình ảnh thượng truyền trước, nhiều nhất thượng truyền trương số, cam chịu vì 9*/
@property(nonatomic,assign)NSIntegerimagesMaxCountWhenWillCompose;

/** nhanh chóng sáng tạo photosView đối tượng*/
+ (instancetype)photosView;
/** photos: Bảo tồn hình ảnh liên tiếp số tổ*/
+ (instancetype)photosViewWithThumbnailUrls:(NSArray*)thumbnailUrlsoriginalUrls:(NSArray*)originalUrls;
/** images: Tồn trữ bản địa hình ảnh số tổ*/
+ (instancetype)photosViewWithImages:(NSMutableArray*)images;

/**
* thumbnailUrls: Bảo tồn hình ảnh ( súc lược đồ ) liên tiếp số tổ
* originalUrls: Bảo tồn hình ảnh ( nguyên đồ ) liên tiếp số tổ
* type: Bố cục loại hình ( cam chịu vì nước chảy bố cục )
*/
+ (instancetype)photosViewWithThumbnailUrls:(NSArray*)thumbnailUrlsoriginalUrls:(NSArray*)originalUrlslayoutType:(PYPhotosViewLayoutType)type;

/**
* thumbnailUrls: Bảo tồn hình ảnh ( súc lược đồ ) liên tiếp số tổ
* originalUrls: Bảo tồn hình ảnh ( nguyên đồ ) liên tiếp số tổ
* maxCol: Mỗi hành nhiều nhất biểu hiện hình ảnh cái số
*/
+ (instancetype)photosViewWithThumbnailUrls:(NSArray*)thumbnailUrlsoriginalUrls:(NSArray*)originalUrlsphotosMaxCol:(NSInteger)maxCol;

/** căn cứ hình ảnh cái số cùng hình ảnh trạng thái tự động tính toán ra PYPhontosView size*/
- (CGSize)sizeWithPhotoCount:(NSInteger)countphotosState:(NSInteger)state;

/**
* đổi mới hình ảnh ( chưa tuyên bố )
* images: Tân hình ảnh số tổ
*/
- (void)reloadDataWithImages:(NSMutableArray*)images;

@end

PYPhotoBrowseView ( tự định nghĩa )

@protocolPYPhotoBrowseViewDelegate<NSObject>

@optional

/**
* hình ảnh xem sắp sửa biểu hiện điệu hát thịnh hành dùng
*/
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseViewwillShowWithImages:(NSArray*)imagesindex:(NSInteger)index;
/**
* hình ảnh xem đã biểu hiện điệu hát thịnh hành dùng
*/
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseViewdidShowWithImages:(NSArray*)imagesindex:(NSInteger)index;
/**
* hình ảnh xem sắp sửa che giấu điệu hát thịnh hành dùng
*/
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseViewwillHiddenWithImages:(NSArray*)imagesindex:(NSInteger)index;
/**
* hình ảnh xem đã che giấu điệu hát thịnh hành dùng
*/
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseViewdidHiddenWithImages:(NSArray*)imagesindex:(NSInteger)index;
/**
* hình ảnh đơn đánh điệu hát thịnh hành dùng
*/
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseViewdidSingleClickedImage:(UIImage *)imageindex:(NSInteger)index;
/**
* hình ảnh trường đúng hạn thuyên chuyển
*/
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseViewdidLongPressImage:(UIImage *)imageindex:(NSInteger)index;

@end

@protocolPYPhotoBrowseViewDataSource<NSObject>

@optional
/** phản hồi sắp sửa xem hình ảnh ( UIImage ) số tổ*/
- (NSArray*)imagesForBrowse;

/** phản hồi sắp sửa xem hình ảnh liên tiếp (NSString) số tổ, nếu thực hiện - (NSArray *)imagesForBrowse; phương pháp, tắc xem nhẹ này phương pháp*/
- (NSArray*)imagesURLForBrowse;

/** phản hồi cam chịu biểu hiện hình ảnh hướng dẫn tra cứu ( cam chịu vì 0)*/
- (NSInteger)currentIndex;

/** cam chịu biểu hiện hình ảnh tương đối với chủ cửa sổ vị trí*/
- (CGRect)frameFormWindow;

/** biến mất trở lại tương đối với trụ cửa sổ chỉ định vị trí*/
- (CGRect)frameToWindow;

@end


@interfacePYPhotoBrowseView:UIWindow<PYPhotoViewDelegate>

/** đại lý*/
@property(nonatomic,weak)id<PYPhotoBrowseViewDelegate> delegate;
/** số liệu nguyên đại lý*/
@property(nonatomic,weak)id<PYPhotoBrowseViewDataSource> dataSource;

/** dùng để xem hình ảnh ( UIImage ) số tổ
* kiến nghị truyền vào UIImage là đã download. Nếu là dị bước xuống tái, thỉnh sử dụng imagesURL
* nếu thiết trí cái này thuộc tính imagesURL mất đi hiệu lực
*/
@property(nonatomic,copy)NSArray*images;

/** dùng để xem hình ảnh liên tiếp ( NSString ) số tổ*/
@property(nonatomic,copy)NSArray*imagesURL;

/** dùng để xem hình ảnh khống kiện ( UIImageView ) số tổ*/
@property(nonatomic,copy)NSArray*sourceImgageViews;

/** dùng để ký lục trước mặt hạ tiêu*/
@property(nonatomic,assign)NSIntegercurrentIndex;

/** cam chịu biểu hiện hình ảnh tương đối với chủ cửa sổ vị trí ( tức từ cửa sổ cái nào vị trí biểu hiện ),
* chú ý: Thiết trí này thuộc tính khi, showFromView thuộc tính mất đi hiệu lực
*/
@property(nonatomic,assign)CGRectframeFormWindow;
/** truyền vào từ nào trương hình ảnh (UIImageView) bắt đầu chậm rãi phóng đại biểu hiện*/
@property(nonatomic,strong) UIView *showFromView;

/** biến mất trở lại tương đối với trụ cửa sổ chỉ định vị trí ( tức biến mất ở cửa sổ cái nào vị trí )
* chú ý: Thiết trí này thuộc tính khi, hiddenToView thuộc tính mất đi hiệu lực
*/
@property(nonatomic,assign)CGRectframeToWindow;
/** truyền vào chậm rãi thu nhỏ lại đến nào trương hình ảnh (UIImageView) sau đó biến mất*/
@property(nonatomic,strong) UIView *hiddenToView;

/** đương màn hình xoay tròn khi, hay không tự động xoay tròn hình ảnh cam chịu vì YES*/
@property(nonatomic,assign)BOOLautoRotateImage;


/**
* xem hình ảnh
*/
- (void)show;

/**
* che giấu
*/
- (void)hidden;

@end

Như thế nào sử dụng PYPhotoBrowser

  • Sử dụng Cocoapods:
    • pod "PYPhotoBrowser"
    • Dẫn vào chủ đầu văn kiện#import <PYPhotoBrowser.h>
  • Tay động dẫn vào:
    • ĐemPYPhotoBrowserFolder trung sở hữu văn kiện túm nhập hạng mục trung
    • Dẫn vào chủ đầu văn kiện#import "PYPhotoBrowser.h"
    • Sử dụng chú ý:Nếu hạng mục vốn dĩ liền có ỷ lại kẻ thứ ba dàn giáo:MBProgressHUD, SDWebImage, DACircularProgressLiền không cần lặp lại dẫn vào, nếu không có, lựa chọnDependencyFolder trung, hạng mục không tồn tại dàn giáo túm nhập hạng mục.

Cụ thể sử dụng ( tình hình cụ thể và tỉ mỉ thấy thí dụ mẫu trình tự PYPhotosViewExample )

  • Đã tuyên bố ( internet hình ảnh xem )

    Thí dụ mẫu số hiệu:

//1. Sáng tạo súc lược đồ hình ảnh liên tiếp số tổ
NSMutableArray*thumbnailImageUrls = [NSMutableArrayarray];
//Tăng thêm hình ảnh ( súc lược đồ ) liên tiếp
[thumbnailImageUrlsaddObject:@ "http://ww3.sinaimg.cn/thumbnail/006ka0Iygw1f6bqm7zukpj30g60kzdi2.jpg"];
[thumbnailImageUrlsaddObject:@ "http://ww1.sinaimg.cn/thumbnail/61b69811gw1f6bqb1bfd2j20b4095dfy.jpg"];
[thumbnailImageUrlsaddObject:@ "http://ww1.sinaimg.cn/thumbnail/54477ddfgw1f6bqkbanqoj20ku0rsn4d.jpg"];
[thumbnailImageUrlsaddObject:@ "http://ww4.sinaimg.cn/thumbnail/006ka0Iygw1f6b8gpwr2tj30bc0bqmyz.jpg"];
[thumbnailImageUrlsaddObject:@ "http://ww2.sinaimg.cn/thumbnail/9c2b5f31jw1f6bqtinmpyj20dw0ae76e.jpg"];
[thumbnailImageUrlsaddObject:@ "http://ww1.sinaimg.cn/thumbnail/536e7093jw1f6bqdj3lpjj20va134ana.jpg"];
[thumbnailImageUrlsaddObject:@ "http://ww1.sinaimg.cn/thumbnail/75b1a75fjw1f6bqn35ij6j20ck0g8jtf.jpg"];
[thumbnailImageUrlsaddObject:@ "http://ww2.sinaimg.cn/thumbnail/005NFHyQgw1f6bn8bha0eg308w0gib2d.gif"];
[thumbnailImageUrlsaddObject:@ "http://ww1.sinaimg.cn/thumbnail/86afb21egw1f6bq3lq0itj20gg0c2myt.jpg"];

//1.2 sáng tạo nguyên đồ hình ảnh liên tiếp số tổ
NSMutableArray*originalImageUrls = [NSMutableArrayarray];
//Tăng thêm hình ảnh ( nguyên đồ ) liên tiếp
[originalImageUrlsaddObject:@ "http://ww3.sinaimg.cn/large/006ka0Iygw1f6bqm7zukpj30g60kzdi2.jpg"];
[originalImageUrlsaddObject:@ "http://ww1.sinaimg.cn/large/61b69811gw1f6bqb1bfd2j20b4095dfy.jpg"];
[originalImageUrlsaddObject:@ "http://ww1.sinaimg.cn/large/54477ddfgw1f6bqkbanqoj20ku0rsn4d.jpg"];
[originalImageUrlsaddObject:@ "http://ww4.sinaimg.cn/large/006ka0Iygw1f6b8gpwr2tj30bc0bqmyz.jpg"];
[originalImageUrlsaddObject:@ "http://ww2.sinaimg.cn/large/9c2b5f31jw1f6bqtinmpyj20dw0ae76e.jpg"];
[originalImageUrlsaddObject:@ "http://ww1.sinaimg.cn/large/536e7093jw1f6bqdj3lpjj20va134ana.jpg"];
[originalImageUrlsaddObject:@ "http://ww1.sinaimg.cn/large/75b1a75fjw1f6bqn35ij6j20ck0g8jtf.jpg"];
[originalImageUrlsaddObject:@ "http://ww2.sinaimg.cn/large/005NFHyQgw1f6bn8bha0eg308w0gib2d.gif"];
[originalImageUrlsaddObject:@ "http://ww1.sinaimg.cn/large/86afb21egw1f6bq3lq0itj20gg0c2myt.jpg"];

//2. Sáng tạo một cái photosView
PYPhotosView *photosView = [PYPhotosViewphotosViewWithThumbnailUrls:thumbnailImageUrlsoriginalUrls:originalImageUrls];

//3. Tăng thêm photosView
[self.viewaddSubview:photosView];
  • Chưa tuyên bố ( bản địa hình ảnh thượng truyền \ tuyên bố \ xem trước )

    Thí dụ mẫu số hiệu:

//1. Sáng tạo bản địa hình ảnh số tổ
NSMutableArray*imagesM = [NSMutableArrayarray];
for(inti =0;i < arc4random_uniform(4) +1;i++) {
[imagesMaddObject:[UIImageimageNamed:[NSStringstringWithFormat:@ "%02d",i +1]]];
}

//2.1 thiết trí bản địa hình ảnh
PYPhotosView *photosView = [PYPhotosViewphotosViewWithImages:imagesM];

//3. Thiết trí đại lý
photosView.delegate = self;

//4. Tăng thêm photosView
[self.viewaddSubview:photosView];
  • Chỉ sử dụng hình ảnh xem công năng ( sử dụng PYPhotoBrowseView loại )

    Thí dụ mẫu số hiệu:

//1. Sáng tạo photoBroseView đối tượng
PYPhotoBrowseView *photoBroseView = [[PYPhotoBrowseViewalloc]init];

//2.1 thiết trí hình ảnh nguyên (UIImageView) số tổ
photoBroseView.sourceImgageViews = imageViews;
//2.2 thiết trí khởi động lại hình ảnh hạ tiêu ( tức trước mặt điểm đánh đệ mấy trương hình ảnh )
photoBroseView.currentIndex =2;

//3. Biểu hiện ( xem )
[photoBroseViewshow];

Tự định nghĩa photosView

Thông qua thiết trí photosView đối tượng thuộc tính giá trị có thể sửa chữa

  • Thiết trí bố cục loại hình ( cam chịu vì nước chảy bố cục )
//Thiết trí bố cục vì tuyến tính bố cục
photosView.layoutType = PYPhotosViewLayoutTypeLine;
  • Thiết trí phân trang chỉ thị loại hình ( cam chịu vì pageControll chỉ thị khí )
//Thiết trí chỉ thị loại hình vì văn bản chỉ thị
photosView.pageType = PYPhotosViewPageTypeLabel;
  • Thiết trí hình ảnh khoảng thời gian ( cam chịu vì 5 )
//Thiết trí hình ảnh khoảng thời gian vì 10
photosView.photoMargin =10;
  • Thiết trí hình ảnh lớn nhỏ ( cam chịu 70*70 )
//Thiết trí hình ảnh khoan ( width )
photosView.photoWidth =100;
//Thiết trí hình ảnh cao ( height )
photosView.photoHeight =60;
  • Thiết trí mỗi hành hình ảnh nhiều nhất cái số ( cam chịu vì 3 cái )
//Thiết trí hình ảnh nhiều nhất liệt số
photosView.photosMaxCol =6;
  • Thiết trí hình ảnh thượng truyền trước, nhiều nhất thượng truyền trương số ( cam chịu vì 9 )
//Thiết trí hình ảnh nhiều nhất thượng truyền trương số
photosView.imagesMaxCountWhenWillCompose =15;
  • Thiết trí đương màn hình xoay tròn khi, hình ảnh hay không thanh thản ứng điều chỉnh ( cam chịu vì YES )
//Đóng cửa đương màn hình xoay tròn khi, hình ảnh thanh thản ứng
photosView.autoRotateImage =NO;

Chờ mong

  • Nếu ngài ở sử dụng trong quá trình có bất luận vấn đề gì, hoan nghênhissue me!Rất vui lòng vì ngài giải đáp bất luận cái gì tương quan vấn đề!
  • Cùng với cho ta điểm star, không bằng hướng ta hung hăng mà vứt tới một cái BUG!
  • Nếu muốn tham dự cái này hạng mục giữ gìn, có thể trực tiếp pull request!
  • Nếu ngài muốn càng nhiều tiếp lời đến từ định nghĩa hoặc là kiến nghị / ý kiến, hoan nghênh issue me! Ta sẽ căn cứ đại gia nhu cầu cung cấp càng nhiều tiếp lời!
  • Nếu ngài ở thượng tuyến app trung sử dụng đến nên kẻ thứ ba, hoan nghênhissue me,Làm ta có thể kịp thời thống kê, đổi mới!

About

An easy way to browse photo(image) for iOS.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 99.9%
  • Ruby 0.1%