问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ios 同一时间只能有一个滑动方向

发布网友 发布时间:2022-04-22 04:17

我来回答

1个回答

热心网友 时间:2022-04-22 05:47

整体可以超出部分左右滑动,但是表体同样需要可以超出部分上下滑动,但是表头不能跟着上下滑动. 在安卓上没有任何问题, 可是在IOS上客户就反应了, 在整体左右滑动的时候, 手指放在表体上只能上下滑动, 左右滑动的功能无法实现, 想要左右滑动必须在表头上左右滑动才能实现
IOS第三方侧滑 怎么*只侧滑一个方向
1 )方法①

首先注意要导入相关的头文件,并且Link the QuartzCore.framework

然后在storyboard中添加三个navigation视图,分别表示中间,左边和右边的视图,并且创建相应的controller。

我的处理是初始化一个IIViewDeckController 实例然后作为子视图添加到最左边的视图中,而用右边的三个navigation视图 作为IIViewDeckController 实例对象的初始参数。

其中要注意的是,要分别在三个navigation视图添加identifier,注意是添加到的是navigation controller对应的视图(即第一个)。

下面看看代码:

[cpp] view plaincopyprint?

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

CenterViewController *centerController = (CenterViewController *)[storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"];

LeftViewController *leftController = (LeftViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"];

RightViewController *rightController = (RightViewController *)[storyboard instantiateViewControllerWithIdentifier:@"RightViewController"];

self.containerController = [[IIViewDeckController alloc] initWithCenterViewController:centerController leftViewController:leftController rightViewController:rightController];

self.containerController.leftSize = 100;
self.containerController.rightSize = 200;

self.containerController.view.frame = self.view.bounds;
[self.view addSubview:self.containerController.view];

}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

CenterViewController *centerController = (CenterViewController *)[storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"];

LeftViewController *leftController = (LeftViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"];

RightViewController *rightController = (RightViewController *)[storyboard instantiateViewControllerWithIdentifier:@"RightViewController"];

self.containerController = [[IIViewDeckController alloc] initWithCenterViewController:centerController leftViewController:leftController rightViewController:rightController];

self.containerController.leftSize = 100;
self.containerController.rightSize = 200;

self.containerController.view.frame = self.view.bounds;
[self.view addSubview:self.containerController.view];

}
复制代码

这里创建一个IIViewDeckController 实例,然后把这个实例对象的视图作为子视图添加到这个view中,这样就实现了跳转到我们需要的IIViewDeckController那里了,让我们 创建的IIViewDeckController实例处理左右滑动出现侧边栏的任务了。

(2 )方法②

这里再介绍一种实现方式:让最左边这个视图继承自IIViewDeckController然后在实现文件添加这个方法:

[cpp] view plaincopyprint?

- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
self = [super initWithCenterViewController:[storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"]
leftViewController:[storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"]
rightViewController:[storyboard instantiateViewControllerWithIdentifier:@"RightViewController"]];
if (self) {
// Add any extra init code here
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
self = [super initWithCenterViewController:[storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"]
leftViewController:[storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"]
rightViewController:[storyboard instantiateViewControllerWithIdentifier:@"RightViewController"]];
if (self) {
// Add any extra init code here
}
return self;
}
复制代码

实现的效果是:

实现方式二(不使用第三方库):

下面简单说说这种滑动出现 侧边栏是怎么回事,明显这就是一个视图层叠,那么简单点的话,就是往一个视图里面添加几个视图,然后添加swipe手势,左右滑动时,响应事件处理,在事 件处理中让最上面的视图的位置发生变化,也就是视图移动,这样就可以显示出下面的视图,这样大致就可以解决了。

这里同样也是使用storyboard。而且storyboard里面的内容和上面的一样(其实解决方式借鉴了上面的方法①)。

首先分别创建对应的中间,左边,右边视图的controller(tableview controller)。

然后创建三个对应的属性

[cpp] view plaincopyprint?

@property(nonatomic, strong) MainViewController *centerController;
@property(nonatomic, strong) RightViewController *rightController;
@property(nonatomic, strong) LeftViewController *leftController;
@property(nonatomic, strong) MainViewController *centerController;
@property(nonatomic, strong) RightViewController *rightController;
@property(nonatomic, strong) LeftViewController *leftController;
复制代码
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见穿堂风 没有爱情我们一样会快乐的对吗 没有爱情的人会快乐么? 解除合同的效力有什么 合同解除会产生什么法律效力 合同解除后,哪些条款仍具效力? 合同解除产生哪些效力呢 民法典中合同解除产生哪些效力 解除合同的效力有哪些 济南七中学校怎么样 新婚姻法对夫妻财产是怎样分割的 夫妻如何分割双方财产 html手机页面 限制滑动区域(在滑动一个div区域时不会带动整个页面的滑动,详情见补充) 泳衣的平角分体什么意思 revit项目生命周期管理是什么意思 中软国际将在余杭区解放号建设的“互联网+信息化项目全生命周期管理平台”,具体提供什么服务? 绿野仙踪4个主要人物的特点是什么? 土地储备新政:7地方试点按项目实行全生命周期预算管理 oppowatch精钢刷ecg 动态心电图文件 怎么打开? 在《绿野仙踪》中为什么要写灰色的堪萨斯和龙卷风灰色寓意着什么? eeg文件用什么打开 .dat如何能打开,我的.dat文件时在一个ECG文件夹中,ECG是心电图波形的意思。有人打开过这种东西么求帮忙 有没有大神知道怎么用matlab读取.ecg的文件 格式为ECG的文件怎么打开 div问题 望高手回答 就是 点击网页上的某个元素(图片),点击之后图片滑动出来,再点击一下在滑动消失 十二道锋味中谢霆锋给范冰冰发微信骂人 挑战者联盟范冰冰为什么哭了 罗志祥“好靓拳击操”的音乐是什么 范冰冰减肥20斤 汉朝几个有意思的名字 求几个汉朝人的名字 宫斗群有什么好听的名字?(汉代版) 汉朝皇帝名字 汉朝人名一般都是两个字吗?(苏武、萧何、卫青……) 汉朝有名的侯,有些什么?例如定远侯班,冠军侯霍,寿亭侯关等等。 汉朝人的名字有没有字? 请问 汉朝时期是怎么起名的? 什么 云琰宓忠的 为什么会有这种名? 汉朝什么有名 汉代宫殿所取的名字“未央宫”中的“未央”,是什么意思? 汉朝人的名字真怪! 成都投标数字证书和社保数字证书是一个吗? 成都社保我已经通过数字证书申请缴费了,但我想提前缴费,怎么办? 成都社保数字证书驱动 成都农商银行 数字证书为什么安装不成功??出现的这些应该怎么办 请问成都单位数字证书业务申请表哪里下载? 成都绿化公司以后到雅安投标,需要办理CA数字证书,请问一下该怎样办理? 成都市用人单位社保网上登机怎么填? 康佳LC55FT68AC的特点?? 康佳lc55ft68ac电视图像模糊