文档章节

IOS博客项目搭建-18-发微博-发布多张图片

Corwien
 Corwien
发布于 2016/05/28 15:01
字数 294
阅读 35
收藏 2

发布多张图片的微博,可以将多张图片看做一个整体,创建一个View将其封装起来。

###分析图

输入图片说明

###创建图片View

输入图片说明

在控制器中引入创建的photosView,然后修改之前创建的imageView属性 IWComposeViewController.m

#import "IWComposePhotosView.h"
// @property (nonatomic, weak)UIImageView *imageView;   // 不再是一个imageView,而是一个整体
@property(nonatomic, weak)IWComposePhotosView *photosView;

###多图的View布局 IWComposePhotosView.m

//
//  IWComposePhotosView.m
//  ItcastWeibo
//
//  Created by kaiyi on 16-5-28.
//  Copyright (c) 2016年 itcast. All rights reserved.
//

#import "IWComposePhotosView.h"

@implementation IWComposePhotosView

- (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];
}

// View 整体图片View的布局

-(void)layoutSubviews
{
    [super layoutSubviews];

    int count = self.subviews.count;

    CGFloat imageViewW = 60;
    CGFloat imageViewH = 60;
    int maxColumns = 4;  // 一行最多显示4张图片

    // 计算图片的间距
    CGFloat margin = (self.frame.size.width - maxColumns * imageViewW) / (maxColumns + 1);

    // 计算每个图片排列的位置如九宫格, i表示行号
    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);
    }

}

@end

####添加多图效果展示: 注意:红色的区域是我们封装的放多张图片的photosView

输入图片说明

© 著作权归作者所有

Corwien
粉丝 27
博文 149
码字总数 115164
作品 0
广州
程序员
私信 提问
使用 Xamarin 开发 iOS 键盘扩展(含网络访问)

版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/...

walter lv
02/24
0
0
系统学习iOS动画之零:说明和目录

动画制作很有趣,可以为用户界面注入活力。 如果使用得当,动画可以向用户传达信息,并将用户注意力吸引到界面的重要部分。 之前也做过一些iOS动画,但一直没有系统学习过,这次我用RW网站的...

Andy_Ron
2018/12/21
0
0
iOS 开发者们,请尽量不要在夏季开发应用!

【编者按】本文作者系上海同广文化传播有限公司CEO:张筱帆 。下文是他的经验之谈,供大家借鉴。 从近期我自己以及我周围的开发者朋友身上发生的各种悲剧来看,我得出一个结论,作为iOS开发者...

oschina
2012/10/16
4.3K
16
iOS高仿QQ录音、智能语音诗歌、高仿微信图片浏览源码

iOS精选源码 好看实用的日期时间选择器--CCTimePicker 高仿QQ录音功能 QQ侧滑抽屉效果 MMActionSheet介绍(自定义的类似于微信的UIActionSheet弹出框组件) 智能语音查询诗歌 仿课程表表格效果...

sunnyaigd
2017/10/25
15
0
迈绝伦团队工作汇总

项目负责人:余志恒 up_java后台:无 mz_java后台:修改同城下载文件名,完善论坛功能 bwk后台:无 项目负责人:季景胜 up_Android:无 upzg_Android:无 mzqk_Android:登陆界面重写,地图选...

风化的骆驼
2017/01/16
2
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部