项目链接 :https://github.com/zhengwenming/WeChat
可以看到的知识点:
keyboardDismissMode
contentMode
preferredMaxLayoutWidth
基础结构
BaseNavigationController
BaseNavigationController 作为基础的navigationController
实现功能有:
- statusBar的 UIStatusBarStyleLightContent
- 统一设置navBar的格式
- 不是rootViewController的VC,设置
vc.hidesBottomBarWhenPushed = YES
BaseViewController
BaseViewController 作为基础的ViewController来说
设置的属性有 tableView
dataSource
设置的方法有 registerCellWithNib:tableView:
registerCellWithClass:tableView:
getRandomNumber:to:
tableView的实现 : 初始化
设置代理 和数据源代理
设置keyboardDismissMode属性来dismiss键盘
设置tableFooterView为空view
dataSource的实现:Lazy NSMutableArray
三个方法的字面意思已经很好的解释了 就不做重复
另外说明一下 在BaseViewController里实现了部分数据源方法
#pragma mark TableView delegate
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.dataSource.count;
}
-(UITableViewCell *)tableView:(UITa
bleView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
return nil;
}
属性分析
keyboardDismissMode
keyboardDismissMode
属性为UIScrollView的属性,但凡子类或者本类基本都可以使用该属性来处理键盘,该属性为枚举类型,
如下图:
默认属性为UIScrollViewKeyboardDismissModeNone
,如果设置了属性为UIScrollViewKeyboardDismissModeOnDrag
则拖拽的时候 键盘会自动消失。UIScrollViewKeyboardDismissModeInteractive
该属性不做研究。
contentMode
UIView的属性 contentModel 为枚举类型,如下图
官方解释: 当一个view的bounds变化的时候用于决定其内容怎么变化
默认为:UIViewContentModeScaleToFill
ScaleAspectFit 将图片等比拉伸 可能不会填充整个区域
ScaleToFill 将图片按照整个区域拉伸会破坏图片比例
ScaleAspectFill 将图片等比例拉伸,会填充整个区域,但是会有一部分过大而超出整个区域
至于Top,Left,Right等等就是将图片在view中的位置进行调整
preferredMaxLayoutWidth
label自动换行之后,不设置preferredMaxLayoutWidth的话,系统会根据现在的宽度重新计算将来文字显示的高度.也就是说宽度变窄了,但是还要显示同样多的文字,导致高度变大了。所以说需要设置preferredMaxLayoutWidth来告诉系统Label的首选宽度
目前还没有遇到过显示不全的情况
网友评论