gpt4 book ai didi

ios - 在带有 ScrollableView 的 iOS 上,向后滑动手势不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:34:08 25 4
gpt4 key购买 nike

我正在使用带有 SDK 5.4.0GA 的 Appcelerator Studio 4.7。

我想使用向后滑动手势返回到上一个 View Controller ,但我的触摸只是移动 ScrollableView View ,即使我在屏幕的左边缘开始我的手势。如果没有结束 ScrollableView,向后滑动手势可以正常工作。

当我使用 Titanium Studio 3.4 时,一切都很好。目前无法使用它,因为它不受支持,您甚至无法登录。

这个问题是因为 Appcelerator Studio,不是因为 SDK 版本。我曾尝试使用具有相同 SDK 版本的 Titanium Studio 和 Appcelerator Studio,但只有 Appcelerator Studio 有此问题。这就是我一年前坚持使用 Titanium Studio 的原因,但现在不可能了。

这是没有解决方案的相关主题:https://archive.appcelerator.com/topic/581/swipe-right-from-the-edge-to-go-back-to-the-previous-window-doesn-t-work-anymore-in-ios-using-sdk-3-5-1-ga-and-4-0-0-ga/4

编辑。如何在 2 分钟内重现它:

1) 文件->新建->手机应用项目->默认合金项目

2) 添加名为 scrollable 的新 Controller

可滚动的.xml:

<Alloy>
<Window class="container">
<ScrollableView>
<ScrollView>
<View height="5000" backgroundColor="#DBD6D6">
<Label top="20">View1</Label>
</View>
</ScrollView>
<ScrollView>
<View height="5000" backgroundColor="#FED2FB">
<Label top="20">View2</Label>
</View>
</ScrollView>
<ScrollView>
<View height="5000" backgroundColor="#DCEFD7">
<Label top="20">View3</Label>
</View>
</ScrollView>
</ScrollableView>
</Window>
</Alloy>

index.js:

function doClick(e) {
var scrollableController = Alloy.createController('scrollable',{
});

var view = scrollableController.getView();
$.index.openWindow(view);
}

$.index.open();

索引.xml:

<Alloy>
<NavigationWindow>
<Window class="container" id="index">
<Label id="label" onClick="doClick">Press me</Label>
</Window>
</NavigationWindow>
</Alloy>

3) 就这些!

最佳答案

首先,我已经在 Appcelerator Studio 上尝试过您的代码,所以我不确定在这种情况下在 Titanium Studio 上曾经发生过什么。

现在,自从 Ti.UI.Window swipeToClose 属性在 Ti SDK 5.2.0.GA 之前不存在,因此您可以确定它是否真的是 Studio 错误或 SDK 功能。我确信这不是问题,只是误会。

根据您的查询,有两种方法(据我所知)可以提供滑动到上一个窗口(比如说 SPW) 功能以及 Scrollable 特性,即在 ScrollableView 和它的父 View 之间保留一些填充,如下所示:

-方法一-

<Alloy>
<Window class="container" backgroundColor="white">
<ScrollableView backgroundColor="blue" clipViews="false" left="20" right="20">
<View backgroundColor="red">
<Label>View1</Label>
</View>
<View backgroundColor="green">
<Label>View2</Label>
</View>
<View backgroundColor="cyan">
<Label>View3</Label>
</View>
</ScrollableView>
</Window>
</Alloy>

这些是我对您的代码所做的更改:

  • 添加了 20dp 的左 + 右内边距,这将启用 SPW 功能,但 ScrollableView 的宽度将更小。
  • 设置 clipViews 属性显示相邻的 View 以获得更好的 UI。如果您甚至将此属性设置为 true,则 SPW 功能也可以使用。

-方法 2- 只有当您使用 hitRect property 知道 ScrollableView 的确切尺寸时,它才有效

// replace the line in Method 1 with this one and apply the tss on it
<ScrollableView backgroundColor="blue" id="SC">

scrollable.tss

   "#SC" : {
// (x,y) is top-left corner of hitRect and height/width will determine its dimension where user can swipe the scrollable view
// on remaining area, you can perform SPW feature
hitRect : {
x : 100,
y : 100,
height : 200,
width : 200
}
}

既然您已经看到了实现这两个功能的两种方法,我希望它对您有用。

关于ios - 在带有 ScrollableView 的 iOS 上,向后滑动手势不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39004014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com