小编Rat*_*ain的帖子

如何在swift中暂停和恢复NSTimer.scheduledTimerWithTimeInterval?

我正在开发一款游戏,我想创建一个暂停菜单.这是我的代码:

self.view?.paused = true
Run Code Online (Sandbox Code Playgroud)

但是NSTimer.scheduledTimerWithTimeInterval仍在运行..

 for var i=0; i < rocketCount; i++ {
    var a: NSTimeInterval = 1
    ii += a
    delaysShow = 2.0 + ((stimulus + interStimulus) * ii)       
    var time3 = NSTimer.scheduledTimerWithTimeInterval(delaysShow!, target: self, selector: Selector("showRocket:"), userInfo: rocketid[i], repeats: false)
 }
Run Code Online (Sandbox Code Playgroud)

我希望time3在玩家点击暂停菜单时暂停计时器并在玩家回到游戏时继续运行计时器,但我怎么能暂停NSTimer.scheduledTimerWithTimeInterval?请帮帮我.

nstimer swift ios8

20
推荐指数
6
解决办法
4万
查看次数

在UiCollectionView中处理Touch?

我有这个UICollectionView占据屏幕的主要部分,有一个UIButton显示菜单.当用户点击屏幕的任何一侧时,我想要隐藏菜单,这UICollectionView对我来说很不幸.尝试在其他视图下面的代码,它运作良好...但不是UICollectionView.该函数不会被调用.

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {            
   hidemenu()
   self.view.endEditing(true)            
}
Run Code Online (Sandbox Code Playgroud)

问题是什么?谢谢你的时间.

如何触发touchesBeganUIViewController哪里UICollectionView居住

这是项目.

touch uigesturerecognizer ios uicollectionview swift

6
推荐指数
2
解决办法
9602
查看次数

如何从 RAM 存储器中清除图像

每次我调用 changeImage 函数时,img 图像都会改变。问题是每次更改照片时,应用程序使用的 RAM 内存都会增加,即使之前的照片不再出现在屏幕上。

enter code here import UIKit
class ViewController: UIViewController {

    var takenImage = UIImage()

    @IBOutlet var img: UIImageView!
    @IBOutlet var buton: UIButton!

    var index = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    @IBAction func changeImage(_ sender: Any) {
        index+=1

        switch(index) {
          case 1:  img.image = UIImage(named: "i1")
          case 2:  img.image = UIImage(named: "i2")
          case 3:  img.image = UIImage(named: "i3")
          case 4:  img.image …
Run Code Online (Sandbox Code Playgroud)

uiimage ios swift

6
推荐指数
1
解决办法
1163
查看次数

快速呈现控制器关闭栏指示器

对于大多数人来说,这应该是一个简单的问题。现在,像所附照片中那样呈现视图控制器,其顶部有一个栏(请参见红色箭头),以指示用户可以向下滑动以关闭控制器。请帮助解决以下任何问题:

  • 这个图标的正确术语是什么?
  • 它是 swift 的 ui 工具/库的一部分还是只是一个 UIImage?
  • 有人可以提供一个关于如何实现的简单片段 - 也许类似于下面的代码
let sampleController = SampleController()
sampleController.POSSIBLE_OPTION_TO_SHOW_BAR_ICON = true
present(sampleController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

请参阅我所指的图标的红色箭头

在此输入图像描述

ios swift uipresentationcontroller

5
推荐指数
1
解决办法
2677
查看次数

NSTimer 内存泄漏?

以下内容是否会导致内存泄漏,或者可以以某种方式将其更改为更好吗?随着countDownTimer = nil被移除

-(void)viewDidLoad{    
  countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(loadNewTime:) userInfo:nil repeats:YES];
}

-(void)pauseTimer{            
   NSLog(@"Fired");
   [countDownTimer invalidate];
   //countDownTimer = nil <------ Causes crash when run
}

-(void)resumeTimer{
   countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(loadNewTime:) userInfo:nil repeats:YES];
}
Run Code Online (Sandbox Code Playgroud)

xcode objective-c nstimer ios

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

使用SwiftUI运行Xcode 11时的Swift编译器问题

我试图让我的SwiftUI演示程序运行,但出现奇怪的编译器问题:

“颜色”不能转换为“颜色?”

无法推断复杂的闭包返回类型;添加显式类型以消除歧义

struct LandmarkRow: View {
  var landmark: Landmark

  var body: some View {
    HStack {
      landmark.image(forSize: 50)
      Text(landmark.name)
      Spacer()

      if landmark.isFavorite {
        Image(systemName: "star.fill")
           .imageScale(.medium)
           .foregroundColor(.yellow) // Here 'Color' is not convertible to 'Color?'
      }
    }
  }
}

struct LandmarkList: View {
  @State var showFavoritesOnly = true

  var body: some View {
      NavigationView {
          List {
              Toggle(isOn: $showFavoritesOnly) {
                  Text("Favorites only")
              }

              ForEach(landmarkData) { landmark in // Here Unable to infer complex closure return type; add …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

Swift - stopAnimating() - 必须仅在主线程中使用

我有一系列必须按顺序执行的任务,因此它们被 DispatchQueue 聚集起来。为了通知用户他们正在忙碌,我启动了活动图标。但是如果脱离主线程我该如何停止呢?

从逻辑上讲,我想要实现的是:

override func viewDidLoad() {
   super.viewDidLoad()    
   self.activityIcon.startAnimating()

   DispatchQueue.main.async {
      self.bigTask1()   
   }

   DispatchQueue.main.async {
      self.bigTask2()  
      self.activityIcon.stopAnimating() 
   }
}
Run Code Online (Sandbox Code Playgroud)

这显然会产生运行时错误:“UIActivityIndicatorView.stopAnimating()必须仅从主线程使用”。

将其放入stopAnimating()主队列中可以快速打开和关闭它,没有人会看到它。

像这样的队列外呼叫功能的批准方式是什么main

非常感谢。PS我已经阅读过类似问题的答案,但不太明白。

animation swift dispatch-queue

0
推荐指数
1
解决办法
770
查看次数