我的问题:如何检测用户向上/向下移动手指的时间与左/右相比(我如何知道他们的手指向哪个方向移动)?
我的情况:我想在他们上下移动手指时改变我的应用程序的亮度(向上=更亮,向下=更暗),我想根据他们的左/右滑动在活动和/或视图之间切换.
我有一个包含多个子视图的视图.当用户点击子视图时,子视图的大小会扩展到大部分屏幕,但其他一些子视图仍然可以在下面看到.
当其中一个子视图像这样"扩展"时,我希望我的应用忽略其他子视图上的触摸.有没有一种简单的方法来实现这一目标?我可以编写代码来处理这个,但我希望有一个更简单的内置方式.
假设我有一个 SwiftUI 视图层次结构,如下所示:
ZStack() {
ScrollView {
...
}
Text("Hello.")
}
Run Code Online (Sandbox Code Playgroud)
该Text视图阻止触摸事件到达底层 ScrollView.
使用 UIKit,我会使用类似的东西.isUserInteractionEnabled来控制它,但我找不到任何方法来使用 SwiftUI 来做到这一点。
我试过在文本视图上添加一个Gesture带 aGestureMask的.none,但这似乎不起作用。
我希望我在这里遗漏了一些明显的东西,因为我需要在滚动视图的顶部放置一些状态信息。
最初我创建了这个闪亮的界面,其中包含参数"公司ID"和"日期",但这里我们遇到了一个问题:大多数人都不知道我们通过他们的id工作的公司,只有他们的名字,即(McDonalds,Radioshack) .
所以我想理想地创建一个像这样的搜索功能

我目前的想法是将包括我们所有合作伙伴公司及其ID的列表的表格传递给global.R.然后将textInput作为搜索变量传入,并在服务器端执行搜索.但是,我迷失了如何将searchResults传递回selectInput面板上的UI?
我目前的代码:
ui.R
library(shiny)
shinyUI(pageWithSidebar(
sidebarPanel(
textInput("nameSearch", "Or, Search for company name", 'McDonald'),
selectInput("partnerName", "Select your choice", list( "searchResults" ),
br(),
submitButton("Update View"),
br(),
),
Run Code Online (Sandbox Code Playgroud)
server.R
shinyServer(function(input, output) {
#subTable
searchResult<- reactive({
subset(partners, grepl(input$nameSearch, partners$name))
})
output$searchResults <- renderTable({
searchResult[,1]
})
Run Code Online (Sandbox Code Playgroud)
global.R
partners<- read.csv("partnersList.csv", fill=TRUE)
Run Code Online (Sandbox Code Playgroud)
partnersList就是这种格式
name id
------------------
McDonalds 1
Wendy's 2
Bestbuy 3
Run Code Online (Sandbox Code Playgroud) 我对Apple Watch引入的新用户交互可能性感到非常兴奋,其中包括Force Touch和Digital Crown.
但是,我在WatchKit API中找不到它们.有没有办法接收Force Touch/Digital Crown的活动?是否可以为事件提供自定义处理程序?
用C#编写的Windows控制台应用程序如何确定它是在非交互式环境中调用(例如从服务或作为计划任务)还是从能够进行用户交互的环境(例如命令提示符或PowerShell)调用?
我想创建一个矩形的形状,将通过用户的触摸调整大小.下面的图片是我想要做的一个很好的例子:

有这样的例子吗?我需要学习什么才能实现这个目标?
提前致谢,
我有一个包含两个视图的视图.其中一个视图包含两个按钮和一些文本标签.另一个,alpha设置为0.25,有一个UIActivityIndicatorView告诉用户应用程序正在工作,他必须等到它完成.如果用户在UIActivityIndicatorView旋转时触摸按钮,则当UIActivityIndicatorView停止时,应用记住用户操作并响应它.如何丢弃UIActivityIndicatorView正在旋转时发生的用户交互?
谢谢阅读.
PD:就像在这个帖子中评论一样,我更喜欢不使用任何模态解决方案.
编辑:
我目前正在使用此代码,但它无法正常工作.
- (void)viewDidAppear:(BOOL)animated {
// The view appears with an UIActivityIndicatorView spinning.
[self showResults]; // The method that takes a long time to finish.
[self.activityIndicator stopAnimating];
// When the showResults method ends, the view shows the buttons to the user.
[self.activityIndicatorView setHidden:YES];
[self.menuButton setEnabled:YES];
[self.menuButton setUserInteractionEnabled:YES];
[self.playButton setEnabled:YES];
[self.playButton setUserInteractionEnabled:YES];
[self.view setUserInteractionEnabled:YES];
[self.interactionView setUserInteractionEnabled:YES];
}
Run Code Online (Sandbox Code Playgroud) 我已经看到一些线程涉及OCaml中的GUI编程,但我不认为它们在需要GUI界面时会明确地导致明确的解决方案.
我的问题,更具体地说,如下:在为OCaml软件编程GUI时,最有效(也很容易上手)的方法是什么?有没有人接触到OCaml本身的简单有效的GUI模块,或者找到了一个有效的语言或免费软件包,可以在其中完成这个并与OCaml进行良好的通信/播放?
我在OCaml中编写了一个解释器,所以我的词法分析器,解析器,核心解释器函数等都是OCaml模块.目前,我有一个命令行解决方案("main.ml"),它允许用户通过在命令行中键入表达式并接收显示已解析和缩减表达式等的打印终端输出来与解释器交互.但是,命令行解决方案仅用于测试目的.我希望用户通过GUI进行交互,它可以很简单(很久以前就会想到Java框架),但需要以某种方式与我编码的OCaml模块进行交互.到目前为止我在OCaml中找到了一个库:http: //caml.inria.fr/pub/docs/manual-ocaml-4.00/manual042.html.有谁知道这是否有效和有用?(我想我已经对这个图书馆发表了负面评论)
如果我选择用更优的语言编写GUI,那么软件交互是:用适当的语言编写GUI(可能是C++,Python等),然后将OCaml编写的解释器编译成可执行文件,然后以某种方式连接GUI可执行文件?我对一些松散连接或奇怪的解决方案感兴趣,通过管道(我一直在考虑这些的进程间通信,例如操作系统设计中涉及的内容)或套接字(我倾向于将这些用于网络编程),I想象如果不是OCaml本身,必须有某种方法将我的OCaml编码的解释器"容纳"在另一种语言的GUI代码中.有什么想法,指导或建议吗?
编辑:如果我能获得类似Linux的操作系统(即Linux RedHat)的GUI,我会很高兴.如果我可以让GUI在Windows上工作那将是很棒的,但至少我的目标是Linux.
编辑2:刚发现这个,有没有人对"OCaml-Java"有什么看法? http://ocamljava.x9c.fr/ 这听起来很有意思,因为它具有"...运行使用ocamlc编译的Objective Caml源的能力;其次,能够将Objective Caml源编译成可执行的jar文件".我担心的是,从来没有让我觉得Java是获得快速但有用的GUI的最佳方式......
当前的解决方案:在检查了@Jeffrey Scofield在下面提到的解决方案帖子中的各种选项之后,我选择了目前更深入的LablGtk(这将允许我留在OCaml中).对于那些关注这篇文章的人来说,下一个有希望的选择是研究外语与C的接口,因为C和OCaml已经开始有关系了.似乎有一些方法可以在C语言中调用OC代码和OCaml中的C代码(尽管这可能非常困难,因为您实际上最终会使用一些复杂的包装函数包装OCaml函数调用,这些函数将更加特定于您调用的函数类型在OCaml中 - >即你必须处理每个OCaml函数的"映射"及其在C)中的参数.请查看:http: //www.mega-nerd.com/erikd/Blog/CodeHacking/Ocaml/calling_ocaml.html,了解更多信息.OCaml-Java最初看起来像一个好主意,因为我对Java GUI编程感到满意,但两种语言之间的交互并不像C和OCaml那样直接,而且,这方面的文档似乎很小(并使用OCaml) -Java不是你刚接到的东西,而是获得Java GUI的东西......).OCaml-JavaScript看起来很有趣,但请记住,如果您选择此路径,除了一些JavaScript之外,您很可能不得不花时间在良好的HTML 5编码设置上.或者,SO中有几个帖子讨论管道和套接字,它们是创建GUI后端系统的有效方法.但是,如果您不介意您的程序系统/产品将"松散耦合",这是一个好主意.一旦我弄清楚LablGtk并确保它为我的OCaml后端代码产生可接受的GUI前端,我将更新此解决方案.
我需要在显示后视图时禁用前视图上的用户交互.发现其他人问同样的事情,但无法真正理解在哪里或如何实现我见过的代码.
例如:我从链接中找到了此代码,
- (void)revealController:(SWRevealViewController *)revealController
willMoveToPosition:(FrontViewPosition)position {
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
- (void)revealController:(SWRevealViewController *)revealController
didMoveToPosition:(FrontViewPosition)position {
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
Run Code Online (Sandbox Code Playgroud)
还发现其他一些链接
我有这个代码,但不确定插入此代码的正确位置.我已经尝试在我的前/后视图中添加它,并且在SWRevealViewController方法中也没有成功
感谢有人能指出我正确的方向.
user-interaction uiviewcontroller ios swrevealviewcontroller
user-interaction ×10
ios ×4
android ×2
apple-watch ×1
c# ×1
cocoa-touch ×1
interface ×1
iphone ×1
objective-c ×1
ocaml ×1
r ×1
search ×1
shape ×1
shiny ×1
swift ×1
swiftui ×1
uiview ×1
watchkit ×1