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项目记录(六)的更多相关文章

  1. IOS客户端Coding项目记录导航

    IOS客户端Coding项目记录(一) a:UITextField设置出现清除按键 b:绘画一条下划线  表格一些设置 c:可以定义表头跟底部视图(代码接上面) d:隐藏本页的导航栏 e:UIEdge ...

  2. IOS客户端Coding项目记录(四)

    1:打开Xcode,然后闪退,报加载某库出现异常 如/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc ...

  3. IOS客户端Coding项目记录(五)

    1:统一修改导航栏的样式,在 AppDelegate.m中 - (BOOL)application:(UIApplication *)application didFinishLaunchingWit ...

  4. IOS客户端Coding项目记录(一)

    1:UITextField设置出现清除按键 self.textField.clearButtonMode = UITextFieldViewModeWhileEditing; 说明: UITextFi ...

  5. IOS客户端Coding项目记录(三)

    18:图片视图几种填充样式 _imgView.contentMode = UIViewContentModeScaleAspectFill; 如下: typedef NS_ENUM(NSInteger ...

  6. IOS客户端Coding项目记录(二)

    9:第三方插件整理 JSON转实体:jsonModel https://github.com/icanzilb/JSONModel/ 美化按键:BButton https://github.com/m ...

  7. 开源项目在真机调试(Coding iOS 客户端为例)

    一.前言 iOS 13学习系列:如何在github下载开源项目到本地(Coding iOS 客户端为例)已经把 Coding iOS 客户端源码下载到本地. 但项目进行真机调试遇到很多问题. 二.问题 ...

  8. 如何在github下载开源项目到本地(Coding iOS 客户端为例)

    一.前言 以 Coding iOS 客户端 为例讲解如何在github下载开源项目到本地 github地址:https://github.com/Coding/Coding-iOS 二.分析 根据项目 ...

  9. “快的打车”创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - V2EX

    "快的打车"创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - ...

随机推荐

  1. Redis发布订阅实现原理

    发布订阅中使用到的命令就只有三个:PUBLISH,SUBSCRIBE,PSUBSCRIBE PUBLISH 用于发布消息 SUBSCRIBE 也叫频道订阅,用于订阅某一特定的频道 PSUBSCRIBE ...

  2. 自定义视图引擎,实现MVC主题快速切换

    一个网站的主题包括布局,色调,内容展示等,每种主题在某些方面应该或多或少不一样的,否则就不能称之为不同的主题了.每一个网站至少都有一个主题,我这里称之为默认主题,也就是我们平常开发设计网站时的一个固定 ...

  3. final .....finally ...... 和Finalize ......区别

    一.性质不同 ()final为关键字: ()finalize()为方法: ()finally为为区块标志,用于try语句中: 二.作用 ()final为用于标识常量的关键字,final标识的关键字存储 ...

  4. C#中简单的继承和多态

    今天我们来聊一聊继承,说实话今天也是我第一次接触. 继承的概念是什么呢?就是一个类可以继承另一个类的属性和方法(成员) 继承是面向对象编程中的一个非常重要的特性. 好了,废话不多说,下面切入正题: 1 ...

  5. DirectX.Capture Class Library

    DirectX.Capture Class Library Brian Low,              29 Mar 2008                                    ...

  6. .NET Core 单元测试 MSTest

    .NET Core 单元测试 MSTest ,MSTest Framework 已经支持 .NET Core RC2 / ASP.NET Core RC2. 之前都是使用 xUnit.net ,现在 ...

  7. 【VBS】vbs指定编码保存文本文件(含xml、ini什么的)

    本文还是折腾安装包期间衍生出来的产物. 我那安装包在安装期间有这个动作: - 让用户填写一些信息,待安装完成后把这些信息写入软件安装目录中的指定ini.xml文件中 上文说的是如何用vbs写ini,i ...

  8. EasyUI-加载完Html内容样式渲染完成后显示

    等待页面的css样式加载完毕,Html内容加载完毕,样式生成后再进行展示,避免一开始加载内容后,逐渐渲染样式造成的不良视觉效果,增强用户体验. 新增base-loading.js文件,代码如下 //获 ...

  9. 说说Java的内存

    首先,我们来看一段程序内存溢出的代码: import java.util.ArrayList; import java.util.List; public class TestMemoryLeak { ...

  10. 历史疑团之EJB

    在学习Sping框架的过程中,看到过很多次关于EJB的批判.使用了SpringMVC但是并没有真性情般体会到它的优点,所以有必要对传统的Java Bean和EJB来做一些了解,无奈百度搜了很多知识,还 ...