iOS开发-自定义类似发动态添加图片PhotoView并且实现摆放

//

//  ZZComposePhotosView.h

//  ZZ_APP主流框架

//

//  Created by ZZ_Macpro on 15/10/12.

//  Copyright (c) 2015年 ZZ_Macpro. All rights reserved.

//

 

#import <UIKit/UIKit.h>

 

@interface ZZComposePhotosView : UIView

 

/**

 *  添加一张新的图片

 */

- (void)addImage:(UIImage *)image;

 

/**

 *  返回内部所有的图片

 */

- (NSArray *)totalImages;

 

@end

 

 

//

//  ZZComposePhotosView.m

//  ZZ_APP主流框架

//

//  Created by ZZ_Macpro on 15/10/12.

//  Copyright (c) 2015年 ZZ_Macpro. All rights reserved.

//

 

#import "ZZComposePhotosView.h"

 

@implementation ZZComposePhotosView

 

- (id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

        // Initialization code

    }

    return self;

}

 

- (void)addImage:(UIImage *)image

{

    UIImageView *imageView = [[UIImageView alloc] init];

    imageView.image = image;

    [self addSubview:imageView];

}

 

- (void)layoutSubviews

{

    [super layoutSubviews];

    

    long count = self.subviews.count;

    CGFloat imageViewW = 90;

    CGFloat imageViewH = imageViewW;

    int maxColumns = 3; // 一行最多显示4张图片

    CGFloat margin = (self.frame.size.width - maxColumns * imageViewW) / (maxColumns + 1);

    for (int i = 0; i<count; i++) {

        UIImageView *imageView = self.subviews[i];

        

        CGFloat imageViewX = margin + (i % maxColumns) * (imageViewW + margin);

        CGFloat imageViewY = (i / maxColumns) * (imageViewH + margin);

        imageView.frame = CGRectMake(imageViewX, imageViewY, imageViewW, imageViewH);

    }

}

 

- (NSArray *)totalImages

{

    NSMutableArray *images = [NSMutableArray array];

    

    for (UIImageView *imageView in self.subviews) {

        [images addObject:imageView.image];

    }

    

    return images;

}

 

@end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值