go go go wensday - Go语言中文社区

go go go wensday


go go go wensday

10-15-星期四

1、“讨论组”的界面{创建讨论组、获取用户讨论组}

2、在“关注”以及“粉丝”栏,push一个界面。设置“关注的headview”

10-16-星期五

1、获取用户的讨论组信息—?

2、响应“创建”。&

3、“创建讨论组”双标题,响应“下一步”。&

10-17-星期六

1、“我的简介”push进入后即开始编辑。&      2、“讨论组”管理编辑

学习:hit-test

学习:tableviewcell 的删除以及放置图片集

10-19-星期一

讨论组的管理页面:

1、在cell中有间距排列头像----collectionview

2、navigationbar的标题------被选中的讨论组的名称+群组人数

PhotoLocations----向右滑动cell即可出现红色删除按钮,访问以及编辑图库

10-20 星期二

使用新的工程,模拟实现排列 image显示、增加、删除的界面

《TouTable副本》文件

10-21 星期三

1、“我”的界面上个人头像右上角处的身份标识修改

2、排列显示头像,将header view中的view与控制分离

10-22  星期四

1、自定义View主要是通过重载drawRect这个方法,来改变view的外观

2、自定义的view通过协议的方式,通知变更。

push一个view controller中的view为透明时,出现延时。

分辨率是指在单位面积内有多少象素

pixel—px:象素就是指相成图象的最小的一个单位,一般我们都把他比喻成一个点

10-23  星期五

1、添加讨论组详情页面的CELL设置项

UIAlertView 、UIAlertController

10-26  星期一

1、创建讨论组的第一步,拉人--->第二步,讨论组命名----然后完成。

2、生成新的cell

10-27  星期二

1、新的cell迟钝了---??---完成时,要保存需要增加的东西

2、讨论组详情的布局完善----匹配

10-28 星期三

1、讨论组名称更改后,更新保存

2、UIAlertController,一个不可子类化,私化的视图层

因为是IOS9 之后的东西,所以自定义一个AlertView

3、图片尺寸更改

4、block

10-29 星期四

1、简介完成后,返回上一个页面

2、删除聊天记录点击后,出现弹窗

3、完成讨论组的名称的更改后,更新bar的标题以及相应的地方

10-30  星期五

1、KVC

10-31 星期六

1、do table

11-02  星期一

1、SEL

2、selectedBackgroundView

3、[cell performSelector:@selector(setSelectedTextColor:) withObject:[UIColor redColor]];

4、UITapGestureRecognizer

[labelForCell addGestureRecognizer:gesture];

- (void)labelAction:(UITapGestureRecognizer *)sender

{    UILabel *label = (UILabel *)sender.view;}

5、UISwitch——是否跟想象中的不一样

11-03  星期二

1、mark uiswitch的开关状态,在复用cell 的时候获取其状态。

switchForCell.on = [state boolValue];

2、NSNumber *switchNumber = [NSNumber numberWithBool:switchForCell.on];

NSNumber *state = [switchState objectForKey:key];

3、[switchState setObject:state forKey:key];

4、UISwitch属于UIControl

5、删除tablecell有两种方式:数组/indexpath

6、uitabelcell 复用时,Identifier一定得注意!

11-04 星期三

1、重新tableview中做过的操作

11-05  星期四

1、@encode接收数据类型的名称,生成合适的字符串

2、NSNumber是NSValue的子类

包装数值地址:[NSValue valueWithBytes:&rect objCType:@encode(CGRect)];

3、[vava getValue: &get];--get获得NSValue对象vava的值

4、深拷贝:复制引用对象本身,创建一个新的内存资源

浅拷贝:只复制指向对象的指针,不复制对象本身,没有创建一个新的内存地址

5、

11-06 星期五

1、NSFileManager允许对文件进行操作,创建、删除、移动、获取

fm =[NSFileManager defaultManager]创建一个属于我们自己的NSFileManager对象

2、NSString *home = [@"~" stringByExpandingTildeInPath];

将路径中的代字符扩展成用户主目录(~)或指定用户的主目录(~user)

3、NSDirectoryEnumerator *direnum = [manager enumeratorAtPath:home];

4、深底遍历:递归枚举它的内容[fm enumeratorAtPath: home];

浅度遍历:不递归枚举文件夹中的内容 [fm directoryContentsAtPath: home];

11-09 星期一

1、UINavigationController下的setToolbarHidden默认为隐藏

2、initWithNavigationBarClass?

3、Smart Label 就是不可编辑的UITextView,UITextView 上的dataDetectorTypes属性可以识别URL、手机号、邮箱地址等

4、stringByAppendingPathComponent,如果有必要加分隔符,会在添加之前,自动加上。

11-10  星期二

1、设置UITextView:区域、文本字体颜色、背景颜色、文本键盘的类型、委托对象设置

2、autoresizingMask自动调整子控件与父控件中间的位置,宽高

3、[UIView animateWithDuration:0.3 animations:^{

self.placeText.alpha = 0.0;

[textView becomeFirstResponder];

} completion:^(BOOL finished){

}];  动画效果1

4、[UIView beginAnimations:@"feedbackview" context:nil];

[UIView setAnimationDuration:1.0f];

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

self.placeText.alpha = 0.0;

[textView becomeFirstResponder];

[UIView commitAnimations];  动画效果2

11-11  星期三

1、一个新的界面:

tableDelegate、设置新界面的标题、左右键、内容

2、设置一个UITableView:区域、委托、数据源、分割方式、背景颜色、加入父视图

一个UITableViewCell的内容填充:每一个cell的行高、行宽、identifier、cell style、cell background view、有无附加视图accessoryView、行的分割符、填充文本内容。

3、NSDateFormatter可设置dateStyle、timeStyle,然后根据设置的方式从NSDate中输出字符串。

4、NSDate--dateWithTimeIntervalSinceReferenceDate

创建并返回一个NSDate对象,象设置为:

从UTC2001年1月1日00:00:00

5、NSLocale--initWithLocaleIdentifier

[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]];

6、[dateFormatter setLocale:usLocale];

11-16 星期一

设置--免打扰--UIPickerView

在函数的问题上多次跌倒:参数、返回值

每天的小幸福是种种的关怀,体贴,惊喜

sel:将方法包装成相应的方法地址,以便调用方法。

SEL s1 = @selector(test1); // 将test1方法包装成SEL对象

SEL s2 = NSSelectorFromString(@"test1"); // 将一个字符串方法转换成为SEL对象

NSString *str = NSStringFromSelector(@selector(test));

//将SEL对象转换为NSString对象

[p performSelector:@selector(test)];  //调用对象p的test方法

1、navigationcontroller 上导航条按钮的跳转

通过一个数组:navigationcontroller.viewcontrollers

2、clipsToBounds:把子视图超出父视图的那部份隐藏起来,针对父视图设置。

当取值为YES时,剪裁超出父视图范围的子视图部分;当取值为NO时,不剪裁子视图。默认值为NO。

3、响应触摸事件:分发给触摸事件发生的那个视图上----hit-test视图

查找这一视图的过程就叫做hit-testing

检测一个触摸事件是否发生在相应视图对象的边界之内(即视图的frame属性,这也是为什么子视图如果在父视图的frame之外时,是无法响应事件的)。如果在,则会递归检测其所有的子视图。包含触摸点的视图层次架构中最底层的视图就是hit-test视图。在检测出hit-test视图后,系统就将事件发送给这个视图来进行处理。

A包含{B、C}--C包含{D、E}

1. 点击事件发生在视图A的边界内,所以检测子视图B和C;

2. 点击事件不在视图B的边界内,但在视图C的边界范围内,所以检测子图片D和E;

3. 点击事件不在视图D的边界内,但在视图E的边界范围内;

视图E是包含触摸点的视图层次架构中最底层的视图(倒树结构),所以它就是hit-test视图。

hit-test视图可以最先去处理触摸事件,如果hit-test视图不能处理事件,则事件会沿着响应链往上传递,直到找到能处理它的视图。

*如果View的同级别Subview中有重叠的部分,则优先检查顶部的Subview,如果顶部的Subview返回nil, 再检查底部的Subview

*子视图如果在父视图的frame之外时,是无法响应事件的

当一个View收到hitTest消息时,会调用自己的pointInside:withEvent:方法,如果pointInside返回YES,则表明触摸事件发生在我自己内部,则会遍历自己的所有Subview去寻找最小单位(没有任何子view)的UIView,如果当前View.userInteractionEnabled = NO,enabled=NO(UIControl),或者alpha<=0.01, hidden等情况的时候,hitTest就不会调用自己的pointInside了,直接返回nil,然后系统就回去遍历兄弟节点。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;

//递归调用 -pointInside:withEvent:.

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;

// default returns YES if point is in bounds

3、cancelsTouchesInView为YES,表示当Gesture Recognizers识别到手势后,会向hit-test view发送 touchesCancelled:withEvent:消息来取消hit-test view对此触摸序列的处理,这样只有Gesture Recognizers能响应此触摸序列,hit-test view不再响应。如果为NO,则不发送touchesCancelled:withEvent:消息给hit-test view,这样会使Gesture Recognizers和hit-test view同时响应触摸序列。

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/aa2f9b50ba01
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-09 21:56:31
  • 阅读 ( 847 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢