share总结


前言

在第二周进行了share的界面仿写,相比网易云和ZARA界面的仿写,share的难度明显很大,任务俩个也很多。浅浅总结一下这一周仿写的share

界面构成

  • 启动界面

定时器实现即可,启动界面接下来的的是登陆界面,所以在定时器的时间函数里转向登陆界面即可。

  • 登陆界面

需要实现账号密码的输入,使用TextField来接收虚拟键盘的输入
在登陆界面还需要添加确定登陆和注册的按钮,当点击确定登陆时,界面转向share首页。点击注册界面时,界面转向注册界面。
登陆界面还需要实现一个自动登录的按钮。当选择了这个按钮并输入密码账号后,直接转向share首页。

  • 注册界面

三个TextField,一个用来接收邮箱地址,一个接收密码,另一个接收账号。
一个按确认注册,点击次按钮后,界面转向登陆界面

  • share首页

无限轮播图+自定义cell。
无限轮播图使用NSTimer定时器来实现,
自定义cell需要实现点赞功能

  • 搜索界面

TextField来接收键盘输入内容实现搜索
右分类,推荐,时间三个按钮来添加搜索条件。
上传按钮实现内容上传

  • 文章界面

三个按钮对应不同分类下的文章

  • 活动界面

TableView来实现活动内容的添加

  • 个人信息

头像部分
我上传的 桑哥标签实现不同条件下的文章上传的搜索
我的信息 1.新关注的: 实现关注和非关注的按钮的状态的改变和保存。2私信:自定义cell
设置 : 1.基本资料: 要求修改性别按钮的实现 。 2.修改密码: 要求三个TextField来接收原始密码,修改密码和确定密码。如果两个输入的修改后密码不一致,使用警告对话框来提示密码输入不一致。如果两个输入修改密码相同,提示修改成功。3.消息设置:要求能改变并保存各个按钮的状态。4.清除缓存,警告对话框提示修改成功,两秒后警告对话框消失。

问题

控制栏的图标设置

//share普通,share按压是要添加的图片名称。
    fenView.tabBarItem = [[UITabBarItem alloc] 
    initWithTitle:nil image:[[UIImage imageNamed:@"share普通"]imageWithRenderingMode:
    UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:
    @"share按压"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

添加效果:share按压

请添加图片描述

share普通
请添加图片描述

导航栏颜色的修改(前景+后景)

使用MAC自带的数码测色器来测出自己要求改的颜色的数值。
请添加图片描述

请添加图片描述

//修改后景颜色
//这里的47.0,132.0,169.0是数码测色器测出来的三项数值。其他的内容是格式
    self.navigationController.navigationBar.backgroundColor=[UIColor colorWithRed:47.0/255.0 green:132.0/255.0 blue:169.0/255.0 alpha:10.f];


//修改前景+后景颜色

    UINavigationBarAppearance* apperance = [UINavigationBarAppearance new];
    [apperance configureWithOpaqueBackground];
    apperance.backgroundColor = [UIColor colorWithRed:47.0/255.0 green:132.0/255.0 blue:169.0/255.0 alpha:10.f];
    apperance.shadowColor = [UIColor clearColor];
    self.navigationController.navigationBar.standardAppearance = apperance;
    self.navigationController.navigationBar.scrollEdgeAppearance = self.navigationController.navigationBar.standardAppearance;

只修改后景颜色
请添加图片描述
修改前景+后景颜色
请添加图片描述

自动轮播图

这里是timer代码和党使用手势拖动时停止和开始NSTimer的代码

//timer函数
- (void)timer{
    int dir = self.sv.contentOffset.x/self.view.frame.size.width;
    if(dir!=3){
    //这个函数可以给自动轮播图添加轮播效果
        [self.sv setContentOffset:CGPointMake(self.view.frame.size.width*(dir%4 + 1), 0) animated:YES];
    }else{
        self.sv.contentOffset = CGPointMake(0, 0);
    }
}
//timer的停止
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    _timer.fireDate = [NSDate distantFuture];

}
//timer的开始
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    _timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:1.0f];
}

实现按钮按下时背景的改变和状态的保存

//按钮的时间函数
- (void)press:(UIButton*)btn{
    UIImage* image = [UIImage imageNamed:@"背景"];
    [btn setImage:image forState:UIControlStateSelected];
    if (btn.selected == YES){
        btn.selected = NO;
        return;
    } else{
        btn.selected = YES;
        return;
    }
}

键盘回收

//点击屏幕空白处键盘回收
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    [self.textField resignFirstResponder];
}

使用手势滑动屏幕

在第三界面要求实现使用手势滑动后劲儿按钮按压两个效果。
按钮按压的函数可以直接让跳转到对应的界面
使用手势滑动时,按钮的状态也应该对应起来。所以在当屏幕开始滑动的函数里写上按钮状态改变的内容

//按钮按压后页面跳转的函数
- (void)press3{
    self.sv.contentOffset = CGPointMake(self.view.frame.size.width*2, 0);
}

清除缓存

点击button4清除缓存按钮后,1秒后弹出一个警告对话框提示清除成功,再过两秒警告对话框自动消失

- (void)pressBtn4{
    NSTimer* timerView = [[NSTimer alloc]init];
    timerView = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timer) userInfo:nil repeats:NO];
}
- (void)timer{
    UIAlertController* alertView = [UIAlertController alertControllerWithTitle:@"提示" message:@"缓存清除成功" preferredStyle:UIAlertControllerStyleAlert];
    [self presentViewController:alertView animated:YES completion:nil];
    [self performSelector:@selector(dismiss:)withObject:alertView afterDelay:2];
    
}

总结

  • 键盘无法弹出时,在虚拟机里找到设置->General->Keyboards->HardWare Keyboard->按下shift+commend+k即可
  • 上传照片使用的是协议传值,将最后一张图片和上传图片张数一并传到第一界面
  • 首页点赞应该使用传值
  • 按钮状态的保存,应该是把Second窗口写成Firest窗口的一个属性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山河丘壑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值