IOS客户端Coding项目记录(六)
1:获取某一行的坐标
UITableViewCell *cell = [_myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow: inSection:]];
[tipsView setY:CGRectGetMaxY(cell.frame) - 0.5];
- (void)setY:(CGFloat)y{
CGRect frame = self.frame;
frame.origin.y = y;
self.frame = frame;
}
2:设置视图某个角的圆角(这边是左下跟右下)
[self addRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(, )];
[self setClipsToBounds:YES];
- (void)addRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii{
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:corners cornerRadii:cornerRadii];
CAShapeLayer *maskLayer = [CAShapeLayer new];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.layer.mask = maskLayer;
}
3:设置一个视图弹出来,可以先加载然后隐藏
if (!_inputTipsView) {
_inputTipsView = ({
EaseInputTipsView *tipsView = [EaseInputTipsView tipsViewWithType:EaseInputTipsViewTypeLogin];
tipsView.valueStr = nil;
__weak typeof(self) weakSelf = self;
tipsView.selectedStringBlock = ^(NSString *valueStr){
[weakSelf.view endEditing:YES];
weakSelf.myLogin.email = valueStr;
[weakSelf refreshIconUserImage];
[weakSelf.myTableView reloadData];
};
UITableViewCell *cell = [_myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow: inSection:]];
[tipsView setY:CGRectGetMaxY(cell.frame) - 0.5];
[_myTableView addSubview:tipsView];
tipsView;
});
}
注意:因为这边输入框是在列表上,所以把要弹出的视图就addSubview到其上面;
cell.textField.keyboardType = UIKeyboardTypeEmailAddress;
[cell configWithPlaceholder:@" 电子邮箱/个性后缀" andValue:self.myLogin.email];
cell.textValueChangedBlock = ^(NSString *valueStr){
weakSelf.inputTipsView.valueStr = valueStr;
weakSelf.inputTipsView.active = YES;
weakSelf.myLogin.email = valueStr;
[weakSelf.iconUserView setImage:[UIImage imageNamed:@"icon_user_monkey"]];
};
这样可以通过active属性进行控制它是否显示;
子视图(其实就是一个列表,并给它设置的大小)的这个属性控制:
- (void)setActive:(BOOL)active{
_active = active;
self.hidden = self.dataList.count <= || !_active;
}
4:根据不同的内容加载跟去除视图
-(void)configUI:(BOOL)haveData
{
if (haveData) {
//有数据
if (self.curSearchImageNoDataView) {
[self.curSearchImageNoDataView removeFromSuperview];
self.curSearchImageNoDataView=nil;
} if (!_myTableView) {
_myTableView = [[UITableView alloc] initWithFrame:CGRectMake(,0.5, SCREEN_WIDTH, SCREEN_HEIGHT) style:UITableViewStylePlain];
_myTableView.backgroundColor = RGB(, , );
_myTableView.showsVerticalScrollIndicator = NO;
_myTableView.showsHorizontalScrollIndicator=NO;
_myTableView.tableHeaderView=[self addTableHeaderView];
_myTableView.tableFooterView=[self addTableFootView];
_myTableView.dataSource = self;
_myTableView.delegate = self;
_myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[_myTableView registerClass:[ZURoomImageCell class] forCellReuseIdentifier:NSStringFromClass([ZURoomImageCell class])];
_myTableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadTableData)]; [self.view addSubview:_myTableView];
[_myTableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(UIEdgeInsetsMake(0.5, , , ));
}];
} }
else
{
//无数据
if (self.myTableView) {
[self.myTableView removeFromSuperview];
self.myTableView=nil;
} if (!self.curSearchImageNoDataView) {
self.curSearchImageNoDataView=[[ZUSearchImageNoDataView alloc]init];
[self.view addSubview:self.curSearchImageNoDataView];
[self.curSearchImageNoDataView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo();
make.left.and.right.and.bottom.mas_equalTo();
}];
} __weak typeof(self) weakSelf = self;
[self.curSearchImageNoDataView initWithHeightValue:self.rongYunName doneBlock:^{
[weakSelf addRoomImageAction];
}];
}
}
IOS客户端Coding项目记录(六)的更多相关文章
- IOS客户端Coding项目记录导航
IOS客户端Coding项目记录(一) a:UITextField设置出现清除按键 b:绘画一条下划线 表格一些设置 c:可以定义表头跟底部视图(代码接上面) d:隐藏本页的导航栏 e:UIEdge ...
- IOS客户端Coding项目记录(四)
1:打开Xcode,然后闪退,报加载某库出现异常 如/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc ...
- IOS客户端Coding项目记录(五)
1:统一修改导航栏的样式,在 AppDelegate.m中 - (BOOL)application:(UIApplication *)application didFinishLaunchingWit ...
- IOS客户端Coding项目记录(一)
1:UITextField设置出现清除按键 self.textField.clearButtonMode = UITextFieldViewModeWhileEditing; 说明: UITextFi ...
- IOS客户端Coding项目记录(三)
18:图片视图几种填充样式 _imgView.contentMode = UIViewContentModeScaleAspectFill; 如下: typedef NS_ENUM(NSInteger ...
- IOS客户端Coding项目记录(二)
9:第三方插件整理 JSON转实体:jsonModel https://github.com/icanzilb/JSONModel/ 美化按键:BButton https://github.com/m ...
- 开源项目在真机调试(Coding iOS 客户端为例)
一.前言 iOS 13学习系列:如何在github下载开源项目到本地(Coding iOS 客户端为例)已经把 Coding iOS 客户端源码下载到本地. 但项目进行真机调试遇到很多问题. 二.问题 ...
- 如何在github下载开源项目到本地(Coding iOS 客户端为例)
一.前言 以 Coding iOS 客户端 为例讲解如何在github下载开源项目到本地 github地址:https://github.com/Coding/Coding-iOS 二.分析 根据项目 ...
- “快的打车”创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - V2EX
"快的打车"创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - ...
随机推荐
- JS魔法堂:判断节点位置关系
一.前言 在polyfill querySelectorAll 和写弹出窗时都需要判断两个节点间的位置关系,通过jQuery我们可以轻松搞定,但原生JS呢?下面我将整理各种判断方法,以供日后查阅. 二 ...
- 转自coolshell--vim的基本操作
开始前导语: 在正式转入python开发后,日常的工作中会和大量linux相关命令和工具接触,从另外一个层面,学习的东西相当的多,而VIM在整个的linux体系中所占据的角色就更不用说了,之前在处理g ...
- OpenStack虚拟云桌面在携程呼叫中心的应用
编者:本文为刘科在第六期[携程技术微分享]中的分享内容.在携程技术中心(微信号ctriptech)微信后台回复[云桌面],可加入微信交流群,和关注云桌面的小伙伴一起玩耍~ 刘科,携程系统研发云平台桌面 ...
- WinPhone学习笔记(二)——页面外观剖析
上一个篇博文说了WinPhone页面内部的东西,现在介绍表面的东西,先来看看一下一个WinPhone页面 这个页面分了三部分:顶部这个是状态栏, 中间这个是一个页面的内容部分, 最下面则是应用程序栏 ...
- Redis系列二之事务及消息通知
一.事务 Redis中的事务是一组命令的集合.一个事务中的命令要么都执行,要么都不执行. 1.事务简介 事务的原理是先将一个事务的命令发送给Redis,然后再让Redis依次执行这些命令.下面看一个示 ...
- iOS 阶段学习第八天笔记(指针)
iOS学习(C语言)知识点整理 一.指针 1)概念:存储变量的地址的一个变量. 2) 数据存储类型分析 1.text (代码段) :存储二进制的可执行代码 2.data(初始化的数据段) 存储初始化的 ...
- ASP.NET入门教程:事件句柄
事件句柄(event handler)是一种针对给定事件来执行代码的子例程. ASP.NET - 事件句柄 请看下面的代码: <% lbl1.Text="The date and ti ...
- 疯狂Android讲义 - 学习笔记(二)
Android应用的用户界面编程 2.1 界面编程与视图(View)组件 Android应用的绝大部分UI组件放在android.widget.android.view包及其子包中,所有UI组件都继承 ...
- spring笔记4 spring MVC的基础知识4
//todo 5,spring MVC的本地化解析,文件上传,静态资源处理,拦截器,异常处理等 spring MVC 默认使用AcceptHeaderLocalResolver,根据报文头的Accep ...
- 常见的http响应状态码
http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. http状态返回代码 代码 说明100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到 ...