效果图如下:

实现思路

整体可以看做为一个大的UIStackView(排列方式水平)包括一个子UIStackView(排列方式垂直),其中左边包括一个图片,右边的UIStackView中可以看做包括三个小控件,其中一个imageView控件,两个label控件

实现代码如下(供参考):

//
// ViewController.m
// UIStackView
//
// Created by 陈高健 on 16/1/29.
// Copyright © 2016年 陈高健. All rights reserved.
// #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. //创建整体UIStackView
UIStackView *stackView = [[UIStackView alloc]initWithFrame:CGRectMake(50, 50, 200, 50)];
//排列方式 水平排列
stackView.axis = UILayoutConstraintAxisHorizontal;
//设置间隔为10
stackView.spacing = 10;
//添加到View上
[self.view addSubview:stackView]; //创建左侧StackView上的图片
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
//设置颜色
imageView.backgroundColor = [UIColor redColor];
//设置图片
imageView.image = [UIImage imageNamed:@"image1"];
//把子控件依组的形式添加进来
[stackView addArrangedSubview:imageView]; //创建子StackView
UIStackView *stackViewSub = [[UIStackView alloc]initWithFrame:CGRectMake(0, 0, 150, 50)];
//排列方式 垂直排列
stackViewSub.axis = UILayoutConstraintAxisVertical;
//对齐方式 顶部对齐
stackViewSub.alignment = UIStackViewAlignmentLeading; //创建右侧StackView上第一个图片控件
UIImageView *imageView2 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 38, 10)];
//设置颜色
imageView2.backgroundColor = [UIColor greenColor];
//设置图片
imageView2.image = [UIImage imageNamed:@"image2"]; //创建第一个label控件
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 38, 10)];
//设置文本内容
label.text = @"人均 18 $";
//设置字体大小
label.font = [UIFont systemFontOfSize:12]; //创建第二个label控件
UILabel *label2 = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 150, 10)];
//设置文本内容
label2.text = @"口味21 环境 21 价格 18 $";
//设置字体大小
label2.font = [UIFont systemFontOfSize:10]; //将图片控件添加到子StackView中
[stackViewSub addArrangedSubview:imageView2];
//将第一个label添加到StackView中
[stackViewSub addArrangedSubview:label];
//将第二个label添加到StackView中
[stackViewSub addArrangedSubview:label2]; //将子StackView添加到整体的StackView中
[stackView addArrangedSubview:stackViewSub];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

iOS9中通过UIStackView实现类似大众点评中的效果图的更多相关文章

  1. 【转】Mac系统中安装homebrew(类似redhat|Centos中的yum;类似Ubuntu中的apt-get)

    Homebrew,Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get.yum神器 Homebr ...

  2. python中的赋值操作与C语言中的赋值操作中的巨大差别

    首先让我们来看一个简单的C程序: a = ; b = a; b = ; printf("a = %d, b = %d\n", a, b); 相信只要学过C语言, 不用运行程序便能知 ...

  3. Hawk 1.2 快速入门2 (大众点评18万美食数据)

    本文将讲解通过本软件,获取大众点评的所有美食数据,可选择任一城市,也可以很方便地修改成获取其他生活门类信息的爬虫. 本文将省略原理,一步步地介绍如何在20分钟内完成爬虫的设计,基本不需要编程,还能自动 ...

  4. Node.js大众点评爬虫

    大众点评上有很多美食餐馆的信息,正好可以拿来练练手Node.js. 1. API分析 大众点评开放了查询商家信息的API,这里给出了城市与cityid之间的对应关系,链接http://m.api.di ...

  5. 【腾讯Bugly干货分享】美团大众点评 Hybrid 化建设

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/rNGD6SotKoO8frmxIU8-xw 本期 T ...

  6. Hawk: 20分钟无编程抓取大众点评17万数据

    1. 主角出场:Hawk介绍 Hawk是沙漠之鹰开发的一款数据抓取和清洗工具,目前已经在Github开源.详细介绍可参考:http://www.cnblogs.com/buptzym/p/545419 ...

  7. Android 仿美团网,大众点评购买框悬浮效果之修改版

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...

  8. Android对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...

  9. iOS开发-仿大众点评iPad侧边导航栏

    昨天其实已经写了一篇侧边栏的文章,不过感觉还不是很清晰,这篇文章算是补充吧,iPad上看了大众点评的侧边栏,基本上百分之九十类似,具体效果可参考下图: 对比昨天主要做了两个修改,一个是图片和文字的显示 ...

随机推荐

  1. 将 Objective-C 代码迁移到 Swift(Swift 2.0更新)-b

    本节内容包括: 为你的Objective-c代码做好迁移准备 (Preparing Your Objective-C Code for Migration) 迁移过程(The Migration Pr ...

  2. nil、Nil、NULL与NSNull的区别--备用

    我们来分别介绍一下这四种类型: 一.nil 我们给对象赋值时一般会使用object = nil,表示我想把这个对象释放掉: 或者对象由于某种原因,经过多次release,于是对象引用计数器为0了,系统 ...

  3. Struts2 DMI的使用

    Struts2的Action类中可以放置多个方法并在struts.xml中配置供页面调用.只要方法符合execute()方法的标准即返回类型是String就可以了. 同一个Action多个方法调用的方 ...

  4. reaver使用相关

    (非TP-LINK路由推荐–d9 –t9参数防止路由僵死 reaver -i mon0 -b MAC -a -S –d9 –t9 -vv) 小结-学习时应因状况调整参数(-c后面都已目标频道为1作为例 ...

  5. zend framework 1 连接oracle数据库的写法

    1 用Zend_Db_Adapter_Pdo_Oci方式 $config =array( 'host'=>'192.168.5.40', 'port'=>'1521', 'dbname'= ...

  6. Node.js 入门(2)

    1.http 请求 //调用Node.js自带的http模块 var http = require("http"); //调用http模块提供的函数createServer htt ...

  7. LayerDrawable 资源

    与 StateListDrawable 有点类似,LayerDrawable 也可包含一个 Drawable 数组,因此系统 将会按这些 Drawable 对象的数组顺序来绘制它们,索引最大的 Dra ...

  8. DSP开发资源总结,经典书籍,论坛

    OMAP4开发资源总结: 一.TI OMAP4官网介绍: http://www.ti.com.cn/general/cn/docs/wtbu/wtbuproductcontent.tsp?templa ...

  9. DEV控件的使用(二次封装BaseUI)

    一:DEV的安装 直接点击exe文件安装,安装完成之后,将控件添加到工具栏,如下图添加即可 二:注意事项 项目使用的是二次封装的BaseUI,有些属性和事件在BaseUI的控件中由于太多不能全部显示, ...

  10. 2014-08-26 解决HttpContext.Current.Session在ashx文件中出现“未将对象引用设置到对象的实例”的问题

    今天是在吾索实习的第35天. 最近在使用HttpContext.Current.Session来获取Session["..."]的值时,常常会弹出错误——“未将对象引用设置到对象的 ...