文章目录

  • 前言
  • 一、分栏控制器
  • 二、首页
  • 三、我的

前言

要实现一个类似淘宝的购物软件的一个界面,这里的第一个界面是无限轮播图,第二个界面是“我的


提示:以下是本篇文章正文内容,下面案例可供参考

一、分栏控制器

要实现这样的主界面,我是通过分栏控制器来实现对两个界面加在一起的实现。
先定义VcFirst和VcSecond两个以UIViewController为父类的子类
这时VcFirst就代表我们要实现的“首页”界面,VcSecond代表我们要实现的"我的"界面

对于两个类的初始化,一定放在SceneDelegate.m中去实现!!!这里一定注意UIWindow的实现

//  SceneDelegate.m
//  Zara
#import "SceneDelegate.h"
#import "VcFirst.h"
#import "VcSecond.h"
@interface SceneDelegate ()@end@implementation SceneDelegate{self.window = [[UIWindow alloc]initWithWindowScene:(UIWindowScene*)scene];[self.window makeKeyAndVisible];
//在SceneDelegate.m中实现对两个类的一些初始化
//设置Color,title,等属性//将两个视图控制器存入数组中
NSArray* arr = [NSArray arrayWithObjects:vc1,vc2, nil];
//创建分栏控制器
UITabBarController* tbc = [[UITabBarController alloc]init];
//将数组添加到分栏控制器中
tbc.viewControllers = arr;
tbc.selectedIndex = 0;
//分栏控制器颜色不透明
tbc.tabBar.translucent = NO;
tbc.view.backgroundColor = [UIColor grayColor];self.window.rootViewController = tbc;
}

二、首页

首页部分我们需要实现的是一个无限轮播图,有按钮上下一张和用手势滑动上下一张的功能。
首先对VcFirst初始化
初始化时要注意宽度应该是屏幕的宽*要添加的图片的张数,长度是屏幕的长度
用循环将图片添加到UIImage里
用UIButton实现对上下一张图片操作的处理
无限轮播:每次按下按钮时判断当前屏幕上显示的图片是第几张,如果是第一张且按下了左翻按钮,则直接跳转到最后一张,如果是最好一张且按下了又翻按钮,直接跳转到第一张

//  VcFirst.m
//  Zara
//#import "VcFirst.h"@interface VcFirst ()@end@implementation VcFirst{vc.frame = CGRectMake(0, 0, 390, 844);vc.pagingEnabled = YES;vc.scrollEnabled = YES;//我使用的虚拟机是iPhone12,添加了5张图片,尺寸我采用了390*5vc.contentSize = CGSizeMake(390*5, 844);vc.bounces = YES;vc.alwaysBounceVertical = NO;vc.alwaysBounceHorizontal = YES;vc.showsVerticalScrollIndicator = YES;vc.showsHorizontalScrollIndicator = NO;vc.backgroundColor = [UIColor redColor];//这是添加图片的代码for(int i = 0;i<5;i++){//%d.jpg是名为(1-5).jpg的五张图片NSString* strName = [NSString stringWithFormat:@"%d.jpg",i+1];UIImage* image = [UIImage imageNamed:strName];UIImageView* iView = [[UIImageView alloc]initWithImage:image];iView.frame = CGRectMake(390*i, 0, 390, 844);[vc addSubview:iView];}[self.view addSubview:vc];//UIButton的实现UIButton* btnLeft1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];btnLeft1.frame = CGRectMake(0, (self.view.frame.size.height-100)/2, 100, 100);UIButton* btnRight1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];btnRight1.frame = CGRectMake((self.view.frame.size.width-100), (self.view.frame.size.height-100)/2, 100, 100);[btnLeft1 setTitle:@"<" forState:UIControlStateNormal];[btnRight1 setTitle:@">" forState:UIControlStateNormal];[btnLeft1 setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];[btnRight1 setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];btnLeft1.titleLabel.font = [UIFont systemFontOfSize:100];btnRight1.titleLabel.font = [UIFont systemFontOfSize:100];[btnLeft1 addTarget:self action:@selector(pressLeft)forControlEvents:UIControlEventTouchUpInside];[btnRight1 addTarget:self action:@selector(pressRight) forControlEvents:UIControlEventTouchUpInside];
}//这是按钮的按压函数-(void)pressLeft{int num = _sv.contentOffset.x/self.view.frame.size.width;_sv.contentOffset = CGPointMake(self.view.frame.size.width*(num-1), 0);NSLog(@"%f",_sv.contentOffset.x);if (num == 0){_sv.contentOffset= CGPointMake(self.view.frame.size.width*4, 0);num = 5;}
}
-(void)pressRight{int num = _sv.contentOffset.x/self.view.frame.size.width;_sv.contentOffset = CGPointMake(self.view.frame.size.width*(num+1), 0);if (num == 4){_sv.contentOffset = CGPointMake(self.view.frame.size.width*1, 0);}
}

这是“首页”的效果


三、我的

在我的界面,主要是使用UITableView控件
需要根据我们的具体需要来自定义cell

//注意.m文件里一定实现这几个函数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{return 7;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {if(indexPath.row == 0){return 100;}else{return 60;}
}

myTableViewCell.m

//这是设置的其中一条的信息
//会员详情代表要现实什么样的文字
//01.png代表我们要添加的图片
_label = [[UILabel alloc] init];_label.text = @"会员详情";[self.contentView addSubview:_label];_imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"01.png"]];[self.contentView addSubview: _imageView];_label.frame = CGRectMake(70, 7, 100, 50);_imageView.frame = CGRectMake(20, 10, 40, 40);

这是“我的”界面的效果

UI——无限轮播图和分栏控制器相关推荐

  1. 用JavaScript实现网页无限轮播图效果,附整套源码

    用JavaScript实现无限轮播图效果(附源码) javascript群内每日课题-今日课题:用JavaScript实现无限轮播图效果 PS:很多企业通用的案例自己再学习过程中肯定是要熟练的,所以今 ...

  2. 无限轮播图 三种实现方式

    无限轮播图三种实现方式:(源码地址) 1.首尾相接方式: https://github.com/jakajacky/DRScrollerView 2.imageView复用方式: https://gi ...

  3. iOS UI篇——轮播图Banner图片动图混合无限轮播

    KJBannerView 介绍一下自己之前写的无限轮播图库,无限自动循环滚动,大家有什么需求可以给我留言,持续更新中- Demo地址:KJBannerViewDemo 功能介绍 KJBannerVie ...

  4. Android之无限轮播图源代码

    Android轮播广告图是大家经常用到的一个控件今天便撸了一把代码 实现步骤 使用Viewpager进行实现图片滑动 设置ViewPager的数据,让其无限切换 Activity代码 public c ...

  5. vue element ui 走马灯轮播图(简单几句话实现自动缩放效果)

    实现效果 element ui 简单实现轮播图 本文,中间叙述的是过程,完整代码在最后面. 最近在写公司官网,用的是element ui 走马灯组件写的轮播图,ui想要自动缩放的效果,如上视频.在这里 ...

  6. dev控件swiftplot图滚动方法_无限轮播图使用Scroller就这么简单

    前言 这几天又拾起老本行,复习复习Android,才发现忘的差不多了,上午做了一个小Demo,配合Scroller做了一个轮播图,效果如下,但是不知为何,录制的GIF成这样,凑乎一下看看. 原理是继承 ...

  7. swift-自定义无限轮播图

    一  前言 1.之前一直在用OC编程,最近才开始接触使用swift就发现使用OC越来越不习惯,感觉已经爱上了swift. 2.这个自定义轮播图只是对之前OC版本进行了翻译,欢迎指正. 3.我决定一步步 ...

  8. Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)

    一言不合就上图 banner是第三方集成好的直接注入依赖就可以用 老套路先注入依赖: //banner这个版本才是王道(我的studio是2.3.3)compile 'com.youth.banner ...

  9. 微信小程序种利用轮播图实现tab栏切换

    js文件 navList: ['推荐', '视频', '热点', '娱乐'],idx: 0},handleChange (e) {var idx = e.target.dataset.idxthis. ...

  10. 仿小米商城电脑官网-纯HTML+CSS(含轮播图)

    来自作者的话 这是我第一次写博客,也是为了激励自己学习,分享一些前端学习的知识,有写的不好的多多包涵.下面是参考的一些博客的链接 https://blog.csdn.net/weixin_439768 ...

最新文章

  1. java连接数据库核心代码
  2. 每日一皮:程序猿的读书历程,最后一本​必备​!
  3. ImportError: dynamic module does not define module export function
  4. 【TypeScript】使用 const 关键字声明只读变量
  5. .NET MasterPage技术
  6. P4542-[ZJOI2011]营救皮卡丘【费用流,Floyd】
  7. Linux PWN从入门到熟练
  8. java 高效文本查找替换_Java 查找、高亮PDF 文本
  9. 十年前乔布斯曾试图颠覆电视行业 如今苹果终于出手了
  10. java适配器模式_java设计模式之适配器模式
  11. 艾默生变频器报警PHP,艾默生/Emerson变频器启动就报警维修很牛
  12. 低功耗技术(三)UPF的使用
  13. 固态硬盘在IDE、AHCI模式下的速度对比
  14. 企业路由器和办公室局域网无线路由器设置
  15. 计算机软件网络工程师考试试题,计算机软件水平考试《网络工程师》试题及答案(6)...
  16. 新能源汽车的电池寿命
  17. Java –显示所有ZoneId及其UTC偏移量
  18. 数据库的锁机制理解和运用
  19. java爬虫京东商品,Java爬虫实现爬取京东上的手机搜索页面 HttpCliient+Jsoup
  20. C语言入门 九九乘法表

热门文章

  1. 图像处理的相关数学知识
  2. 去YY欢聚时代的一次面试经历
  3. Shader GrabPass应用实例——实现扭曲效果
  4. raft2020年更新_Raft6月1日更新了什么 Raft6月1日更新内容介绍
  5. 如何限制局域网计算机上网,怎么样禁止局域网用户修改电脑ip地址
  6. 阿里TPP图化框架技术实践 — 打造算法在线服务领域极致开发体验与性能
  7. 摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文 名“GPU编程与CG语言之阳春白雪下里巴人”
  8. jupyter报错EnvironmentLocationNotFound: Not a conda environment: /root/anaconda3/envs/anaconda3
  9. 4个快速美白牙齿小偏方
  10. processing 写的规律图形运动