【极客班】iOS进阶(一)

多傻,这周只看到了选学的内容,还以为只是把这些内容看四个星期,结果一个Git看了三天,还混沌了几日,方才发现这周的课程被折叠了。。。

这周悲剧了,笔记质量指数下滑,各位担待啊!


把ScrollView看了两遍,先把作业做完了不是?

其实还是借鉴了搜索引擎里搜到的,发到博客的文章的作者都好厉害,全是纯代码,我复制粘贴就是一个项目啊!对于我,还是要结合StoryBoard来构建,所以也是部分查阅了。

这个作业看起来简单,其实对我这种基本功不怎么行的人,实在是煎熬。

(譬如delegate,高高兴兴的敲上 [scrollView setDelegate:self] ,结果扎眼的⚠️怎么也去不掉,才发现是@interface里没敲。)

我在StoryBoard里创建了应该有的ScrollView和PageControl(这玩意儿悲剧了,一会儿说)ImageView代码创建,使其尺寸和ScrollView相同即可。

在ScrollView里添加多张图片用的是for循环,但并没有用可变数组,不过见过有用这个的。

UIScrollView * scrollView = self.myScrollView;

//几张图片呢?

NSInteger totalImageCount = 3 ;

[scrollView setContentSize:CGSizeMake(self.view.bounds.size.width* totalImageCount, 0)];

//    向其中添加pageImageView

CGFloat width=self.view.bounds.size.width;

CGFloat height=self.view.bounds.size.height;

for (NSInteger i=0; i< totalImageCount; i++) {

//        相对于scrollView内容的位置

UIImageView *pageImageView=[[UIImageView alloc] initWithFrame:CGRectMake(i*width, 0, width, height)];

//把Image按照这个规律按顺序把名字起了

[pageImageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"Image0%ld",i + 1]]];

[scrollView addSubview:pageImageView];

}

来瞅一眼可变数组的方法,其实换汤不换药(来源:IOS之PageControl和ScrollView搭配 - liric的专栏 - 博客频道 - CSDN.NET)

NSMutableArray * imgArr = [[NSMutableArray alloc]initWithObjects:

[UIImage imageNamed:@"1933_1.jpg"],

[UIImage imageNamed:@"1933_2.jpg"],

[UIImage imageNamed:@"1933_3.jpg"],

nil]; // 数组放三张图片

self.array = imgArr;

for (int i =0; i<[array count]; i++)

{

[self loadScrollViewWithPage:i]; // 遍历数组

}

然后我的PageControl悲剧了,不论是storyboard里放置,还是代码里搞,总是不偏不倚地在左上角放着,我的点击小点也跳图片的方法,也没有奏效。

- (void)scrollViewDidScroll:(UIScrollView *)sender

{

CGFloat pagewidth = self.myScrollView.frame.size.width;

int page = floor((self.myScrollView.contentOffset.x - pagewidth/2)/pagewidth)+1;

self.myPageControl.currentPage = page; // 触摸pageControl也能滚动切换图片

}

希望下周批到我作业的各位童鞋能够帮着找找错哈~



View的层次结构


【极客班】iOS进阶(一)_第1张图片


【极客班】iOS进阶(一)_第2张图片


UIView的层次管理方法

Create

- (void)addSubview:(UIView *)view;

- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;

- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;

- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;

Read

(BOOL)isDescendantOfView:(UIView*)

Update

- (void)bringSubviewToFront:(UIView *)view;

- (void)sendSubviewToBack:(UIView *)view;

- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;

Delete

- (void)removeFromSuperview;


Git

Git的基本概念

Git是基于commit进行管理的,其他VCS多基于文件

拥有独特的staging area(暂存工作区)

基本用法

git init 初始化一个空的本地仓库(.git目录)

git add  将修改登记到stage 里

git commit 提交stage 里的修改

message

重点是意图:解决了什么问题,加了什么功能等。

不要攒一堆修改一起提交。

一个commit解决一个问题,甚至一个复杂的问题分为几个commit一起解决。

相关的修改一起提交。

Git  的分布式仓库

git init : 在本地建立一个新仓库

git clone url : 从服务器上克隆一个仓库到本地

git remote add name url : 关联远程仓库

git pull [name branch]: 下载  (git pull 相当于 fetch 和update working copy集合)

git push name branch: 上传

撤销修改撤销

a仅在工作副本中的修改

git checkout -- file

b撤销已登记到Stage 中的修改

git reset HEAD file (退回工作副本)

git reset -- hard HEAD file (回最后一次提交状态)撤销已提交到本地仓库中的修改

git revert(抵消)

git reset -- hard(撤销)

c撤销已经推送到服务器中的修改

尝试git revert

你可能感兴趣的:(【极客班】iOS进阶(一))