我试图使用动作调用带参数的函数,UITapGestureRecognizer我无法找出任何替代方案.
这是一个假设用indexPath参数调用doubleTap函数的手势.
var gestureDoubleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "doubleTap(indexPath)")
Run Code Online (Sandbox Code Playgroud)
这是假设要调用的函数.
func doubleTap(indexPath: NSIndexPath) {
NSLog("double tap")
NSLog("%@", indexPath.row)
}
Run Code Online (Sandbox Code Playgroud)
如何doubleTap使用indexPath参数调用该函数?
谢谢你的所有建议.
编辑 - 这是我的整个代码,它基本上是设置对象'名称'所以我的第二个viewController可以得到它并使用它
import UIKit
class viewController1: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
@IBOutlet weak var collectionView: UICollectionView!
var imageArray:[String] = []
var name : AnyObject? {
get {
return NSUserDefaults.standardUserDefaults().objectForKey("name")
}
set {
NSUserDefaults.standardUserDefaults().setObject(newValue!, forKey: "name")
NSUserDefaults.standardUserDefaults().synchronize()
}
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return imageArray.count
} …Run Code Online (Sandbox Code Playgroud) 这是两个功能.
第一个功能是我给我的每个单元格做手势UICollectionView.
我试图在发生双击手势事件时将indexPath从此函数发送到我的第二个函数.所以我的行动电话doubleTap:.
在我的第二个函数中,我试图使用发送者获取indexPath单元格.当我双击第一个单元格时,我能够得到一个indexPath,当记录时,打印出"0xc000000000078016> {length = 2,path = 0 - 0}".
当我点击第一个单元格时,如何得到整数0?
欢迎所有建议.谢谢大家.
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
var cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as myViewCell
//adding single and double tap gestures for each cell
/////////////////////////////
//ISSUE IS SENDING indexPath TO doubleTap FUNC
var gestureDoubleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "doubleTap:")
gestureDoubleTap.numberOfTapsRequired = 2
cell.addGestureRecognizer(gestureDoubleTap)
var gestureSingleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "singleTap")
gestureSingleTap.numberOfTapsRequired = 1 …Run Code Online (Sandbox Code Playgroud) 我正在使用新的空安全类型对 Dart 类进行建模。我相信有两种有效的方法来初始化从参数计算的不可空属性。
对于本例,我们将使用Favorite 类。
此类在构造函数中使用初始值设定项列表。
class Favourite {
int favouriteId;
Favourite({required this.favouriteId});
Favourite.mapFromJson(dynamic json)
: this.favouriteId = json["favouriteId"];
}
Run Code Online (Sandbox Code Playgroud)
此类使用“late”关键字。
class Favourite {
late int favouriteId;
Favourite({required this.favouriteId});
Favourite.mapFromJson(dynamic json) {
this.favouriteId = json["favouriteId"];
}
}
Run Code Online (Sandbox Code Playgroud)
你什么时候会使用其中一种而不是另一种?使用“迟到”感觉有风险。如果我添加另一个命名构造函数,编译器不会抱怨“favouriteId”未初始化。
还有其他选择吗?
谢谢你!