暑假第一周任务总结

第一周主要的任务

1.完成对UI控件的学习
2.完成ZARA首页以及微信“我的”界面的仿写
2.完成网易云音乐的部分仿写

在仿写时遇到了一些问题

问题一 cell的复用问题

当写tableview时,就会出现cell的复用问题,会出现往上滑或往下滑的时候,会出现之前设置好的样式发生变化,会产生很多的控件叠在一起。
我所解决的方法是使用注册的方法,为自己需要的每一种类型的单元格设置标识符,然后再对单元格使用,这样就相当于在复用池中有不同类型的单元格就不会出现复用的情况了。具体使用方法。

问题二 多界面传值的问题

在写头像上传那一块的时候会有出现一个多界面传值的问题。即在选头像的界面怎么把头像的信息传到主页面。
解决的思路:假设存放头像的照片的界面是image2,主页面image1,当我们选择点击头像时跳转到image2,然后在image2找到我们要确定上传的照片,然后设置标记,这里要用到UIButton的有关select的属性,然后再点击即可取消选中状态。随后点击导航控制栏的“完成”将所选中的图片信息(我选择的是图片的路径)来传回到主页面。
首先我们需要在image2设置协议和代理对象:

//imageTwo.m
#import <UIKit/UIKit.h>
@protocol imageTwoDelegate <NSObject>
-(void) uploadAvatar:(NSString*) str;   //定义更新头像的方法
@end
@property (assign, nonatomic) id<imageTwoDelegate>delegate; //通过代理对象实现协议方法
@end

设置点击“完成”的事件,触发代理事件

// imageTwo.h
-(void) press {
    
    
     //代理对象调用上传头像事件
    [_delegate uploadAvatar:_strImage];
}

·然后在image1中继承协议并且完成事件

//imageOne.h
#import <UIKit/UIKit.h>
#import "imageTwo.h"

@interface MyViewController : UIViewController<imageTwoDelegate>
@property (nonatomic, strong) UIButton* buttonPortrait;
-(void) uploadAvatar:(NSString*) str;
@end
//imageOne.m
-(void) uploadAvatar:(NSString*) str {
    
    
    [_buttonPortrait setImage:[UIImage imageNamed:str] forState:UIControlStateNormal];
    [view addSubview:_buttonPortrait];
}

然后就可以将图片上传了。

おすすめ

転載: blog.csdn.net/weixin_50990189/article/details/119067226