首页 > 代码库 > 九宫格计算思路
九宫格计算思路
在同一行不断添加View
Y值不变,X值:(间距+宽度) * (下标 % 总列数)
0%3 * (hMargin + width) 1%3 * (hMargin + width) 2%3 * (hMargin + width)
3%3 * (hMargin + width) 4%3 * (hMargin + width) 5%3(hMargin + width)
6%3 * (hMargin + width) 7%3 * (hMargin + width)
在不同行不断添加View
Y值(间距 + 高度) * (下标/总列数),X值:(间距+宽度) * (下标 % 总列数)
0 1 2->y : / 3 * (vMargin + height) = 0
3 4 5->y : / 3 * (vMargin + height) = 1
6 7 8->y : / 3 * (vMargin + height) = 2
#import "ViewController.h"@interface ViewController ()// 购物车@property (weak, nonatomic) IBOutlet UIView *shopCarView;// 添加按钮@property (weak, nonatomic) IBOutlet UIButton *addButton;// 删除按钮@property (weak, nonatomic) IBOutlet UIButton *removeButton;// 全局的下标//@property (nonatomic, assign) NSInteger index;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // 给下标赋值// self.index = 0; // // 裁剪多余部分(不可取)// self.shopCarView.clipsToBounds = YES;}/** * 添加到购物车 * * @param button 按钮 */- (IBAction)add:(UIButton *)button {/***********************1.定义一些常量*****************************/ // 1.总列数 NSInteger allCols = 3; // 2.商品的宽度 和 高度 CGFloat width = 80; CGFloat height = 100; // 3.求出水平间距 和 垂直间距 CGFloat hMargin = (self.shopCarView.frame.size.width - allCols * width) / (allCols -1); CGFloat vMargin = (self.shopCarView.frame.size.height - 2 * height) / 1; // 4. 设置索引 NSInteger index = self.shopCarView.subviews.count; // 5.求出x值 CGFloat x = (hMargin + width) * (index % allCols); CGFloat y = (vMargin + height) * (index / allCols); /***********************2.创建一个商品*****************************/ // 1.创建商品的view UIView *shopView = [[UIView alloc] init]; // 2.设置frame shopView.frame = CGRectMake(x, y, width, height); // 3.设置背景颜色 shopView.backgroundColor = [UIColor greenColor]; // 4.添加到购物车 [self.shopCarView addSubview:shopView]; /***********************3.设置按钮的状态*****************************/// if (index == 5) {// button.enabled = NO;// } button.enabled = (index != 5); // 5.设置删除按钮的状态 self.removeButton.enabled = YES; // 让下标+1// self.index += 1;}/** * 从购物车中删除 * * @param button 按钮 */- (IBAction)remove:(UIButton *)button { // 1. 删除最后一个商品 UIView *lastShopView = [self.shopCarView.subviews lastObject]; [lastShopView removeFromSuperview]; // 2.设置索引值 -1// self.index -= 1; // 3. 设置添加按钮的状态 self.addButton.enabled = YES; // 4. 设置删除按钮的状态 /* if (self.shopCarView.subviews.count == 0) { self.removeButton.enabled = NO; } */ self.removeButton.enabled = (self.shopCarView.subviews.count != 0); }@end
九宫格计算思路
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。