我发现touchDown事件有点慢,因为它需要一个主要的,相当长的触摸,并且不响应轻敲。那是为什么?
然而,touchesBegan只在我需要时响应,即使对非常轻,快速的触摸做出响应。但这不是一个事件,而是一个可以被覆盖的方法。
问题是,touchesBegan显然要求我1)子类标签(我需要响应触摸标签),或2)分析事件以确定它是否来自正确的标签。我想知道这是不是代码味道,是否应该有一个简单触摸的事件。
答案 0 :(得分:1)
尝试在您的标签上添加UITapGestureRecognizer。
答案 1 :(得分:0)
首先,允许标签处理用户交互:
else if (input.equals("c")) {
System.out.println("What column? (1-4)");
String colStr = s.nextLine();
try {
int column = Integer.parseInt(colStr);
if (column >= 1 && column <= 4){
rotateColumn(currentarr, column - 1);
print(currentarr);
b++;
}
else
System.out.println("Invalid Input");
} catch (Exception e) {
System.out.println("Invalid Input");
}
您可以为标签分配点按手势。然后在处理程序方法中,您需要label.userInteractionEnabled = true
超过识别器的switch
属性。如果是state
,则会收到您需要的活动。
这种方法很酷,你可以使用这个处理程序来处理所有标签。在处理程序内部,您可以像这样触摸标签:
.Began
答案 2 :(得分:-1)
&#34;代码气味&#34;?不,它是用户界面的气味。用户界面很臭。
如果您在用户界面中创建一个按钮的行为与任何其他应用程序中的按钮不同,那么人们会讨厌您的应用。做人们习惯的事。