相关疑难解决方法(0)

NSTimer - 如何在Swift中延迟

我在延迟计算机在游戏中的移动方面遇到了问题.

我找到了一些解决方案,但它们在我的情况下不起作用,例如

var delay = NSTimer.scheduledTimerWithTimeInterval(4, target: self, selector: nil, userInfo: nil, repeats: false)
Run Code Online (Sandbox Code Playgroud)

我尝试使用它与功能,fire但也没有效果.

还有哪些其他可能性?

nstimer ios swift

30
推荐指数
2
解决办法
4万
查看次数

如何在UITextView中设置光标的位置

我的iPhone应用程序中有一个可编辑的UITextView.

每当用户选择特定功能时,都会在UITextView内创建新按钮.

由于按钮总是放在文本视图的左侧,我需要将光标放在按钮的右侧,以便用户可以看到他们正在键入的内容.我似乎无法找到一个文档(或未记录)方法来设置光标的位置.

有没有人有任何想法或有其他人有类似的东西吗?

iphone objective-c uitextview ios

29
推荐指数
4
解决办法
3万
查看次数

Swift中的延迟动作

我想让活动指示器开始动画,然后在一秒后停止.

那么有谁知道我怎么能这样做?

class stuff {
@IBOutlet weak var indicator: UIActivityIndicatorView!

   func iGotTriggeredBySomething {
      indicator.startAimating()
      //delay?
      indicator.stopAnimating()
   }
}
Run Code Online (Sandbox Code Playgroud)

谢谢回答.

xcode delay swift

29
推荐指数
3
解决办法
4万
查看次数

警告:尝试在<...>上呈现<UIAlertController:0x7facd3946920>已经呈现(null)

我有一个长按手势一组UITableView呈现一个UIAlertController包含单元格的文本.当UIAlertController提出时,我得到这个警告:

Attempt to present <UIAlertController: 0x7fd57384e8e0>  on <TaskAppV2.MainTaskView: 0x7fd571701150> which is already presenting (null)
Run Code Online (Sandbox Code Playgroud)

根据我的理解,MainTaskView(UITableView)已经呈现了一个视图,因此它不应该呈现第二个视图,UIAlertController.所以我从类似的问题尝试了这个解决方案.它不起作用,因为我收到相同的警告.我该怎么做才能解决这个警告?请参阅下面的代码:

func longPressedView(gestureRecognizer: UIGestureRecognizer){

    /*Get cell info from where user tapped*/
    if (gestureRecognizer.state == UIGestureRecognizerState.Ended) {
        var tapLocation: CGPoint = gestureRecognizer.locationInView(self.tableView)

        var tappedIndexPath: NSIndexPath? = self.tableView.indexPathForRowAtPoint(tapLocation)
        if (tappedIndexPath != nil) {
            var tappedCell: UITableViewCell? = self.tableView.cellForRowAtIndexPath(tappedIndexPath!)
            println("the cell task name is \(tappedCell!.textLabel!.text!)")
        } else {
            println("You didn't tap on a cell")
        }
    }

    /*Long …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift uialertcontroller

21
推荐指数
2
解决办法
1万
查看次数

当没有更多要删除的单元格时,如何在UITableView中关闭编辑模式?

我已经尝试将它放在我的代码的各个部分,比如在commitEditingStyle方法的末尾,但我无法让它停止编辑模式.基本上,我想在没有更多单元格的情况下自动退出编辑模式...

if ([self.tableView numberOfRowsInSection:0] ==0)
    {
        NSLog(@"this triggers, but doesn't stop editing..");
        self.tableView.editing = NO;
        [self.tableView endEditing:YES];
    }
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitableview ios

18
推荐指数
3
解决办法
1万
查看次数

如何检测UIScrollView何时完成滚动在Swift中

从各方面来看,Ashley Smart提出的Obj-C中的这个问题是一个很好的解决方案(如何检测UIScrollView何时完成滚动).

-(void)scrollViewDidScroll:(UIScrollView *)sender 
{   
[NSObject cancelPreviousPerformRequestsWithTarget:self];
    //ensure that the end of scroll is fired.
    [self performSelector:@selector(scrollViewDidEndScrollingAnimation:) withObject:nil afterDelay:0.3]; 

...
}

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
...
}
Run Code Online (Sandbox Code Playgroud)

但是,我需要一个解决方案,在Swift中.

似乎由Matt(dispatch_after - GCD in swift?)贡献的优秀延迟函数可能会有所帮助.

func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}
Run Code Online (Sandbox Code Playgroud)

并实施为......

delay(0.4) {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

但我还是没把它放在一起.有帮助吗?

uiscrollview ios swift

10
推荐指数
3
解决办法
2万
查看次数

创建一个分页的PDF-Mac OS X.

我正在制作Mac应用程序(在Swift 3中使用Xcode 8,Beta 5),用户可以使用该应用程序进行长注并将其导出为PDF.

要创建此PDF,我使用Cocoa的dataWithPDF:方法,使用以下代码:

do {
   // define bounds of PDF as the note text view
   let rect: NSRect = self.noteTextView.bounds
   // create the file path for the PDF
   if let dir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.allDomainsMask, true).first {
        // add the note title to path
        let path = NSURL(fileURLWithPath: dir).appendingPathComponent("ExportedNote.pdf")
        // Create a PDF of the noteTextView and write it to the created filepath
        try self.noteTextView.dataWithPDF(inside: rect).write(to: path!)  
   } else {
        print("Path format incorrect.") // never happens to …
Run Code Online (Sandbox Code Playgroud)

pdf macos cocoa swift swift3

10
推荐指数
1
解决办法
2141
查看次数

在swift 3和向后兼容性中DISPATCH_TIME_NOW

根据@matt 使用的这个精彩答案dispatch_after,我在操场上尝试了代码,它工作正常(没有错误).但是,当我尝试执行向后兼容时DispatchTime.now(),iOS 10只有这样才可用:

func delay( _ delay: Double, closure: () -> ()){
    guard #available(iOS 10, *) else {
        dispatch_after(
            dispatch_time(
                DISPATCH_TIME_NOW,
                Int64(delay * Double(NSEC_PER_SEC))
            ),
            dispatch_get_main_queue(), closure)
        return
    }
    let when = DispatchTime.now() + delay
    DispatchQueue.main.after(when: when, execute: closure)
}
Run Code Online (Sandbox Code Playgroud)

编译器提供修复DISPATCH_TIME_NOWto Replace "DISPATCH_TIME_NOW" with "dispatch_time_t(DISPATCH_TIME_NOW)"并抛出错误说

无法将'Int'类型的值转换为预期的参数类型'dispatch_time_t'(又名'UInt64')

我尝试修复它,因为编译器提供但最终导致更多错误.我应该如何在这里使用向后兼容性?我在做什么错了?请帮助,谢谢!

ios swift swift3 xcode8

8
推荐指数
1
解决办法
4673
查看次数

Swift:从Closing中阻止ABPeoplePickerNavigationController

我想找出一种方法,这样,如果用户按下"取消"按钮(我认为不能删除)ABPeoplePickerNavigationController,视图控制器要么不关闭,要么自动重新打开.

例如,给出以下内容:

var picker = ABPeoplePickerNavigationController()
picker.peoplePickerDelegate = self
self.presentViewController(picker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

if (self.presentedViewController != picker && !userContinuedPastPicker) {
//where userContinuedPastPicker is a boolean set to false 
//in a delegate method called when the user clicks on an a contact 
//(meaning the user didn't press the cancel button but instead clicked on a contact)

    //create and present a UIAlertAction informing the user they must select a contact

    //present picker again
    self.presentViewController(picker, animated: true, completion: nil) …
Run Code Online (Sandbox Code Playgroud)

uinavigationcontroller abaddressbook ios presentviewcontroller swift

7
推荐指数
1
解决办法
234
查看次数

循环中的快速延迟

我有这个延迟功能:

func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
           DISPATCH_TIME_NOW,
           Int64(delay * Double(NSEC_PER_SEC))
    ),
    dispatch_get_main_queue(), closure)
}
Run Code Online (Sandbox Code Playgroud)

从这里: dispatch_after - GCD在swift?

这段代码:

func start(){
   for index in 1...3 {
      delay(3.0){
         println(index)
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

3秒后,它给出:

3

3

3

我的目标:

3秒后:1

6秒后:2

9秒后:3

我该如何实现这一目标?谢谢,

loops delay ios swift

7
推荐指数
1
解决办法
2460
查看次数