天道酬勤,学无止境

swift3

Check if Timer is running

问题 我一直在尝试用计时器重新填充游戏生命,但是每当我离开视图并返回时,计时器就会重复并变得更快。 我试图用Timer?.isValid函数来解决这个问题,以便仅在计时器无效时运行计时器,因此它永远不会重复,但它似乎无法在 if 语句中检查计时器是否无效。 这是我到目前为止一直在使用的 if 语句: if (myTimer?.isValid){ } else{ //start timer } 任何帮助将不胜感激,谢谢。 回答1 var timer : Timer? func startTimer() { if timer == nil { timer = Timer.scheduledTimer... } } func stopTimer() { if timer != nil { timer!.invalidate() timer = nil } } 回答2

2022-05-17 03:30:29    分类:技术分享    ios   swift   xcode   swift3   nstimer

Adjust the size of UITableView dynamically which would display as a non-scrollable list of content

问题 我正在开发 Swift 3.0 中的一个项目,它在 UIScrollView 中有一个 UITableView ,该 UIScrollView 已经设置了它的约束。 要求是显示将从这个 UITableView 中的数组返回的歌曲列表,但是这个 UITableView 的大小应该根据数组的大小动态排列,所以我不需要滚动 UITableView,因为我可以看到所有UITableView 中的歌曲(这个 UITableView 在我的 scrollView 内,所以我可以使用我的 scrollView 在列表中向上或向下移动)。 我将如何实现这一目标? 回答1 您可以根据内容更改 tableview 的高度。 var frame = tableView.frame frame.size.height = tableView.contentSize.height tableView.frame = frame 如果您使用自动布局为 tableview 高度创建插座并将 tableview 内容大小分配给它的常量。 tableviewHeightConstraint.constant = tableview.contentSize.height 回答2 1.为tableView创建一个子类并覆盖intrinsicContentSize。 class MyOwnTableView

2022-05-16 15:39:48    分类:技术分享    ios   swift   uitableview   swift3   uiscrollview

How can I reset the timer after a certain duration?

问题 class SpriteGroup { var sprites : [Sprite] var isVisible : Bool var startTime: TimeInterval = 0.0 var currentTime: TimeInterval = 0.0 init(sprites : [Sprite], isVisible: Bool, pos: CGPoint) { self.sprites = sprites ... startTime = Date.timeIntervalSinceReferenceDate Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.advanceTimer(timer:)), userInfo: nil, repeats: true) } func advanceTimer(timer: Timer) { currentTime = Date.timeIntervalSinceReferenceDate - startTime } 回答1 我可能会这样做 我添加了一个 Clouds 的子类来向您展示他们的 Timer 如何受到场景更新的影响,它只是以均匀的速度在场景中滚动云,而不管设备性能如何 private var

2022-05-16 12:58:10    分类:技术分享    ios   timer   swift3   sprite-kit

Swift 3 - Expandable Table View Cells with first cell already expanded

问题 我正在使用 Swift 3。 我已按照本教程获取它,以便我可以点击表格视图单元格,该单元格将展开以显示更多信息。 https://www.youtube.com/watch?v=VWgr_wNtGPM&t=294s 我的问题是:我该怎么做才能在视图已经加载时展开第一个单元格(即用户不必单击以查看该单元格展开)但所有其他行为保持不变(例如,如果再次单击它,它会崩溃)? UITableViewCell : import UIKit class ResultsCell: UITableViewCell { @IBOutlet weak var introPara : UITextView! @IBOutlet weak var section_heading : UILabel! class var expandedHeight : CGFloat { get { return 200.0 } } class var defaultHeight : CGFloat { get { return 44.0 } } var frameAdded = false required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } override func awakeFromNib() { super

2022-05-16 11:53:04    分类:技术分享    ios   swift   swift3

Speech recognition with punctuation

问题 回答1 通常标点符号被分配为单独的后处理步骤。 对于英语你可以使用 Punctuator,对于其他语言你必须建立模型进行后处理,这会有点复杂。

2022-05-16 08:12:23    分类:技术分享    ios   swift3   speech-recognition

iOS SWIFT - WebRTC change from Front Camera to back Camera

问题 回答1 斯威夫特 3.0 对等连接只能有一个“RTCVideoTrack”用于发送视频流。 首先,要更改相机正面/背面,您必须删除对等连接上的当前视频轨道。 之后,您在需要的摄像机上创建新的“RTCVideoTrack”,并将其设置为对等连接。 我使用了这种方法。 func swapCameraToFront() { let localStream: RTCMediaStream? = peerConnection?.localStreams.first as? RTCMediaStream localStream?.removeVideoTrack(localStream?.videoTracks.first as! RTCVideoTrack) let localVideoTrack: RTCVideoTrack? = createLocalVideoTrack() if localVideoTrack != nil { localStream?.addVideoTrack(localVideoTrack) delegate?.appClient(self, didReceiveLocalVideoTrack: localVideoTrack!) } peerConnection?.remove(localStream) peerConnection?.add

2022-05-16 08:08:08    分类:技术分享    ios   swift3   webrtc

how to set array of date to fireDate in local notification at a time

问题 实际上,在我的应用程序中,我在不同的时间启动了两个以上的计时器。 在某些时间间隔后,我希望触发通知。 当应用程序在前台但不在后台时,它工作正常。 我该如何解决这个问题? 请帮忙。 谢谢! 回答1 您需要执行以下操作... 您需要打开后台模式。 在 AppDelegate 中,添加此代码以在后台运行应用程序 创建属性 @property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundTask; 然后执行以下操作... - (void)applicationDidEnterBackground:(UIApplication *)application { self.backgroundTask = [application beginBackgroundTaskWithExpirationHandler:^{ DLOG(@"End of tolerate time. Application should be suspended now if we do not ask more 'tolerance'"); }]; if (self.backgroundTask == UIBackgroundTaskInvalid) { DLOG(@"This application does not support

2022-05-16 07:51:04    分类:技术分享    ios   swift3   ios10   uilocalnotification

Finding it difficult to update value in firebase in Swift

问题 我的 Firebase 数据库如下所示 在这里,我得到了一个字段名称user_post 。 然后我使用childByAutoId()添加一个新帖子。 然后在里面我根据postId插入帖子。 现在我想更新like并添加新字段peopleWhoLike 。 谁能告诉我如何插入或更新任何特定帖子的值。 顺序是user_post > childByAutoId() > postId 这是我的代码: let keyToPost = ref.child("user_post").childByAutoId().key ref.child("user_post").queryOrdered(byChild: self.postID).observeSingleEvent(of: .value, with: { (snapshot) in if (snapshot.value as? [String : AnyObject]) != nil { let updateLikes: [String : Any] = ["peopleWhoLike/\(keyToPost)" : FIRAuth.auth()!.currentUser!.uid] ref.child("user_post").child(self.postID).updateChildValues(updateLikes

2022-05-16 07:48:33    分类:技术分享    ios   firebase   swift3   firebase-realtime-database

passing data between view controllers programmatically Swift

问题 我有两个视图控制器类。 MainViewController 有一个 UITextField,SecondViewController 有一个 UILabel。 我想从 UILabe 中的 UITextField 打印文本。 请告诉我以编程方式执行此操作的最佳方法。 下面是我的代码: // AppDelegate.swift import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 窗口 = UIWindow(框架:UIScreen.main.bounds) window?.makeKeyAndVisible() window?.rootViewController = MainViewController() window?.backgroundColor = UIColor.yellow application

2022-05-16 07:22:05    分类:技术分享    ios   swift   swift3

How to present a ViewController on Half screen

问题 我有一个UIViewController ,它只有一个UIView ,它从底部覆盖 viewController 的 1/3。 像这样 我想在另一个 ViewController 上展示这个 viewController。 它应该从底部动画出现,并且应该从底部动画消失。 但我不希望它覆盖整个屏幕。 显示它的 viewController 应该在后面可见。 这似乎是一个基本问题,但我无法完成。 有人可以指点我的方向吗? 编辑: 这是我到目前为止所尝试的。 我创建了这些类 // MARK: - class MyFadeInFadeOutTransitioning: NSObject, UIViewControllerTransitioningDelegate { var backgroundColorAlpha: CGFloat = 0.5 var shoulDismiss = false func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? { let

2022-05-16 02:31:10    分类:技术分享    ios   swift   uiviewcontroller   swift3