李洪强九宫格的实现

这就是我要是实现的效果

//

//  LHQOilSeriesViewCtrl.m

//  B01 - 首页

//  油品系列控制器

//  Created by vic fan on 16/6/30.

//  Copyright © 2016年 李洪强. All rights reserved.

//

#import "LHQOilSeriesViewCtrl.h"

#define kSCREENW [UIScreen mainScreen].bounds.size.width

#define kSCREENH [UIScreen mainScreen].bounds.size.height

#define kMARGIN  10

#define kIMAGEMARGIN 35

#define kLABLEMARGIN 40

@interface LHQOilSeriesViewCtrl ()

@end

@implementation LHQOilSeriesViewCtrl

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

self.title = @"油品系列";

self.view.backgroundColor = [UIColor colorWithRed:239/255.0 green:239/255.0 blue:244/255.0 alpha:1];;

//--------------------------------------------------

//[UIColor colorWithRed:239/255.0 green:239/255.0 blue:244/255.0 alpha:1];

[self addImage];

// self.automaticallyAdjustsScrollViewInsets = NO;

}

- (void)addImage{

//View的宽

CGFloat viewW = (kSCREENW - 13*kMARGIN)/3.0;

//图片的宽

CGFloat imageviewW = (kSCREENW - 13*kIMAGEMARGIN)/3.0 - 10;

//标题label的宽

CGFloat labelW = (kSCREENW - 11*kLABLEMARGIN)/3.0 - 20;

//VIew的高

CGFloat viewH = (kSCREENH - 6*kMARGIN)/6.0;

//图片的高

CGFloat imageviewH = (kSCREENH - 6*kIMAGEMARGIN)/6.0 - 20;

//label的高

CGFloat labelH = (kSCREENH - 6*kLABLEMARGIN)/6.0 - 80;

NSArray *imageArr = @[@"",@"",@"",@"",@""];

NSArray *titleViewArr = @[@"机油",@"变速箱油"@"助力油",@"防冻液",@"玻璃水"];

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

//行数

CGFloat rows  = i / 4;

//列数

CGFloat count = i % 4;

//View的X

CGFloat viewX = kMARGIN + (viewW +kMARGIN)*count;

//图片的X

CGFloat imageviewX = kIMAGEMARGIN + (viewW +kMARGIN)*count+35;

//label的X

CGFloat labelX = kLABLEMARGIN + (viewW +kMARGIN)*count + 32;

//View的Y

CGFloat viewY = kMARGIN + (viewH +kMARGIN)*rows;

//imageView的Y

CGFloat imageviewY = kIMAGEMARGIN + (viewH +kMARGIN)*rows - 10;

//label的Y

CGFloat labelY = kLABLEMARGIN + (viewH +kMARGIN)*rows + 60;

//创建View

UIView *mainView = [[UIView alloc]initWithFrame:CGRectMake(viewX, viewY+64, viewW, viewH)];

mainView.backgroundColor = [UIColor whiteColor];

[self.view addSubview:mainView];

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(imageviewX, imageviewY + 64, imageviewW, imageviewH)];

imageView.image = [UIImage imageNamed:@""];

imageView.backgroundColor = [UIColor redColor];

//  NSArray *titleArr = @[@"机油",@"变速油箱",@"助力油",@"防冻液",@"玻璃水"];

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(labelX, labelY + 64, labelW, labelH)];

label.font = [UIFont systemFontOfSize:10];

// label.backgroundColor = [UIColor orangeColor];

//设置lable的文字居中

label.textAlignment = UITextAlignmentCenter;

[self.view addSubview:imageView];

[self.view addSubview:label];

if(i == 0){

label.text = @"机油";

imageView.image = [UIImage imageNamed:@"Snip20160701_80"];

}else if (i == 1){

label.text = @"变速油箱";

imageView.image = [UIImage imageNamed:@"Snip20160701_81"];

}else if (i == 2){

label.text = @"助力油";

imageView.image = [UIImage imageNamed:@"Snip20160701_82"];

}else if (i == 3){

label.text = @"防冻液";

imageView.image = [UIImage imageNamed:@"Snip20160701_83"];

}else if (i == 4){

label.text = @"玻璃水";

imageView.image = [UIImage imageNamed:@"Snip20160701_84"];

}

// label.text = titleViewArr[i];

}

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/*

#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the new view controller using [segue destinationViewController].

// Pass the selected object to the new view controller.

}

*/

@end

时间: 2025-01-12 05:45:37

李洪强九宫格的实现的相关文章

李洪强漫谈iOS开发[C语言-043]-判断较早日期

李洪强漫谈iOS开发[C语言-043]-判断较早日期

李洪强漫谈iOS开发[C语言-041]-计算月份天数

李洪强漫谈iOS开发[C语言-041]-计算月份天数 

李洪强iOS开发之OC[017]函数和方法的区别

// //  main.m //  15 - 函数和对象的方法的区别 // //  Created by vic fan on 16/7/12. //  Copyright © 2016年 李洪强. All rights reserved. // 函数和对象方法的区别 对象方法: - (void)run; #import <Foundation/Foundation.h> @interface Person : NSObject{ @public //定义实例变量 NSString *_nam

李洪强iOS经典面试题

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px "Helvetica Neue"; color: #333333; min-height: 20.0px } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px "Helvetica Neue"; color: #333333; background-color: #ffffff } p.p3 { margi

李洪强iOS开发之RunLoop的原理和核心机制

李洪强iOS开发之RunLoop的原理和核心机制 搞iOS之后一直没有深入研究过RunLoop,非常的惭愧.刚好前一阵子负责性能优化项目,需要利用RunLoop做性能优化和性能检测,趁着这个机会深入研究了RunLoop的原理和特性. RunLoop的定义 当有持续的异步任务需求时,我们会创建一个独立的生命周期可控的线程.RunLoop就是控制线程生命周期并接收事件进行处理的机制. RunLoop是iOS事件响应与任务处理最核心的机制,它贯穿iOS整个系统. Foundation: NSRunLo

李洪强iOS开发之性能优化技巧

李洪强iOS开发之性能优化技巧 通过静态 Analyze 工具,以及运行时 Profile 工具分析性能瓶颈,并进行性能优化.结合本人在开发中遇到的问题,可以从以下几个方面进行性能优化. 一.view优化 1.不透明的View 设置为opaque. 2.根据实际情况重用.延迟加载或预加载View. 3.减少subviews数量,定制复杂cell使用drawRect.尽量使用drawRect而不是layoutSubView. 4.不直接调用drawRect. layoutSubviews方法.万不

李洪强iOS开发之动态获取UILabel的bounds

李洪强iOS开发之动态获取UILabel的bounds 在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法. 1.获取宽度,获取字符串不折行单行显示时所需要的长度  CGSize labelBounds = [str sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)]; 注:如果想得到宽度的话,size的width应该设为MAXFLOAT. 2.获取高度,获取字符串在指定的siz

李洪强IOS开发之-iOS经典面试题

李洪强IOS开发之-iOS经典面试题 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看.我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖.整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人.所以在这里总结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充.我的理解如果有错漏请一定指出,非常感谢! 从12年开始做面试官到现在已经三个年头了,这

李洪强漫谈iOS开发[C语言-044]-翻译数字

 李洪强漫谈iOS开发[C语言-044]-翻译数字