多傻,这周只看到了选学的内容,还以为只是把这些内容看四个星期,结果一个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的层次结构
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