标签: swift3

带有UIScrollView的图像滑块

我正在制作一个图像滑块,该滑块每2秒自动滑动一次。我编写的代码可立即移动到下一张没有幻灯片动画的图像,我想通过显示scrollview滚动以某种方式修复它,这是我的代码:

var imagesArray = [UIImage]()
static var i = 0

override func viewDidLoad() {
    super.viewDidLoad()
    imagesArray = [image1, image2, image3, image4]
    for i in 0..<imagesArray.count{
        let imageview = UIImageView()
        imageview.image = imagesArray[i]
        imageview.contentMode = .scaleAspectFit
        let xPosition = self.view.frame.width * CGFloat(i)
        imageview.frame = CGRect(x: xPosition, y: 0, width: self.imagesScrollView.frame.width, height: self.imagesScrollView.frame.height)
        imagesScrollView.contentSize.width = imagesScrollView.frame.width * CGFloat(i+1)
        imagesScrollView.addSubview(imageview)
    }
}

override func viewDidAppear(_ animated: Bool) {
    let scrollingTimer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(MenuViewController.newStartScrolling), userInfo: nil, repeats: true)
    scrollingTimer.fire()

func …
Run Code Online (Sandbox Code Playgroud)

uiscrollview swift3

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

通用链接,continueUserActivity和sourceApplication没有被调用

我终于设法建立了通用链接,如果我点击该链接,它将打开我的应用程序。但不会在继续用户活动或源应用程序中显示。因为我想将其重定向到特定的视图控制器。我打开“ https:// www.myWeb.com/forgotPassword”的示例

它将重定向到forgotPasswordViewController,我需要阅读链接。

为什么它在继续的用户活动中不显示

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    print(url)
    let urlHost : String = url.host as String!
    print("HELLO")

        let main : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let inner : ResetPasswordViewController = main.instantiateViewController(withIdentifier: "ResetPasswordViewController") as! ResetPasswordViewController
        self.window?.rootViewController = inner
        self.window?.makeKeyAndVisible()
        return true;



}

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
    if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
        let url = userActivity.webpageURL!
        print(url)
        print("HELLO WORLD")
    } …
Run Code Online (Sandbox Code Playgroud)

ios swift ios-universal-links swift3

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

如何从YYYY-MM-dd'T'HH:mm:ss.sssZ中获取时间

嗨,我想从“ 2017-07-31T11:40:00.000Z”获得11:40的时间

以下是我正在使用的代码:

     let formatter = Foundation.DateFormatter()
        formatter.dateFormat = "YYYY-MM-dd'T'HH:mm:ss.sssZ" //2017-04-01T18:05:00.000
        let date1  = formatter.date(from: data.arvTime)
        print("date:\(String(describing: date1))")
        let dateFormatterPrint = Foundation.DateFormatter()
        dateFormatterPrint.dateFormat = "HH:mm"
        let resultTime = dateFormatterPrint.string(from: date1!)
        print("time:\(String(describing: resultTime))")
Run Code Online (Sandbox Code Playgroud)

将时间设为1:29,即我错了时间

请帮我解决这个问题。

date nsdateformatter ios swift3

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

长按通过按钮识别手势 - 斯威夫特3

我是Swift的新手,我正试图制作定时器(在标签中),按下按钮开始长按.同时我想按长按按钮更改长按按钮图像.我留下按钮,我希望按钮恢复原状.

可能有什么问题?

@IBOutlet weak var myBtn: UIButton!

func initGesture()
{

    {   let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(longTap(_:)))
        myBtn.addGestureRecognizer(longGesture)
    }
}

func TimerAction()
{
    Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(longTap), userInfo: nil, repeats: false)
    myBtn.setImage(UIImage(named: "xxx.png"), for: .normal)


}
@IBOutlet weak var lbl: UILabel!

func start()
{
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(ViewController2.updateTime as (ViewController2) -> () -> ())), userInfo: nil, repeats: true)

}

func updateTimer () {
    count += 1
    let hours = Int(count) / 3600
    let …
Run Code Online (Sandbox Code Playgroud)

iphone ios swift uilongpressgesturerecogni swift3

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

完成很快就会被调用

我有以下功能.我正在尝试将allItems数组传递给完成块requestItems,但是我发现它崩溃,因为它说它是零.我删除了完成以检查它item是否有值,它确实存在.

这意味着完成在for循环之前执行.

还有另一种方法吗?类似于Javascript中的Promises,它将在for循环结束时执行完成.

func requestItems(_ data: [String: Any], completion: (Bool, [Item]) -> Void) {

    var allItems = [Item]()

    for i in data["all"] {

        Routes.instance.getRequest(requestType: "items", params: nil, id: someId, completion: { item in

            var it = Item(item["name"] as! String)
            allItems.append(it)

        })

    }

    completion(true, allItems)
}

func getRoutes(requestType: String, parameters: [String: Any]?, id: String, completion: @escaping ([[String:Any]]) -> Void) {

    DispatchQueue.main.async {

        if id == "" {
            self.url = "\(URL_BASE)/\(requestType)"

        } else {
            self.url = "\(URL_BASE)/\(requestType)/\(id)"
        } …
Run Code Online (Sandbox Code Playgroud)

swift alamofire swift3

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

使用Alamofire下载视频,然后在AV播放器上播放

我已使用以下代码从下载视频URL。下载视频效果很好。

func downloadVideo(){

    Alamofire.request("https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4").downloadProgress(closure:{ (progress) in
    print(progress.fractionCompleted)
    self.progressView.progress = Float(progress.fractionCompleted)

    }).responseData{ (response) in
       print(response.result)
       print(response.result.value!)
       print(response.result.description)

        if let data = response.result.value {
            let obj = String(data: data, encoding: .utf8)
            let player = AVPlayer(url: URL(string: obj!)!)
            self.playerController.player = player
            self.addChildViewController(self.playerController)
            self.view.addSubview(self.playerController.view)
            self.playerController.view.frame = self.view.frame
            player.play()

        }

    }
Run Code Online (Sandbox Code Playgroud)

但我想在播放此视频 AVPlayer

我发现“可能是视频”下载为NSData。是正确的。?下载完成后,任何人都可以帮助我如何播放此视频吗?

如果有人可以建议一些其他代码供您使用进度条下载视频,然后在Swift 3.0中播放它,那将是很好的。

TIA。

nsdata ios avplayer alamofire swift3

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

没有从bundle获取文件URL

我在PDFView中加载PDF文件但无法从Bundle获取PDF文件URL.

请检查以下代码:

let pdfView = PDFView(frame: self.view.bounds)
let myFileName = "sample"
guard let url = Bundle.main.url(forResource: myFileName, withExtension: "pdf") else {
         return
}
pdfView.document = PDFDocument(url: url)

self.view.addSubview(pdfView)
Run Code Online (Sandbox Code Playgroud)

每次我nil进去url.

编辑:

这是我的项目窗口:

在此输入图像描述

我犯了什么傻话吗?

请指导我.

提前致谢.

swift3 ios11

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

从文档目录而不是文件路径获取图像Swift 3

这就是我保存图像的方式

    let format = DateFormatter()
    format.dateFormat="MMMM-dd-yyyy-ss"
    let currentFileName = "\(format.string(from: Date())).img"
    print(currentFileName)

    // Save Images
    let fileMgr = FileManager.default
    let dirPath = fileMgr.urls(for: .documentDirectory, in: .userDomainMask)[0]
    let imageFileUrl = dirPath.appendingPathComponent(currentFileName)



        do {

            try UIImagePNGRepresentation(returnedImages)!.write(to: imageFileUrl)

            print("Image Added Successfully")

    } catch {

        print(error)

        }
Run Code Online (Sandbox Code Playgroud)

下面是我用来检索图像的代码,但是我正在获取URL而不是图像文件来填充tableview。任何帮助,将不胜感激

   let fileManager = FileManager.default
   let imageUrl = fileManager.urls(for: .documentDirectory, in: .userDomainMask) [0].appendingPathComponent("img")

   print("Your Images:\(imageUrl)")
Run Code Online (Sandbox Code Playgroud)

nsdocumentdirectory swift swift3 xcode8

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

如何在swift3中的十进制字符串末尾添加一个零

我从webservice获得了一个特殊的双号,比如来自webservice的0.097或0.034.因此,如果我得到一个特定的数字,如0.56或0.5,我需要在0.56中加零,在0.5中加两个零.如何在swift3中执行此操作?目前我在做:

    class func appendString(data: Int) -> String {
    let value = data
    let formatter = NumberFormatter()
    formatter.minimumFractionDigits = 3 // for float
    formatter.maximumFractionDigits = 3 // for float
    formatter.minimumIntegerDigits = 1
    formatter.paddingPosition = .afterPrefix
    formatter.paddingCharacter = "0"
    return formatter.string(from: NSNumber(floatLiteral: Double(value)))!
  }
Run Code Online (Sandbox Code Playgroud)

任何想法如何实现上述告诉逻辑?

nsnumberformatter swift3

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

iOS 11的inputAccessoryView坏了

我在视图控制器上为我的UIToolBar/Accessory View设置了以下设置

@IBOutlet var inputFieldView: UIToolbar!
override var canBecomeFirstResponder: Bool{
    return true
}

override var inputAccessoryView: UIView?{
    return self.inputFieldView
}
Run Code Online (Sandbox Code Playgroud)

然后在我的viewDidLoad里面我有:

    let seperator = UIView(frame: CGRect(x:0 , y: 0, width: ScreenSize.width(), height: 1))
    seperator.backgroundColor = UIColor.lightBackground
    self.inputFieldView.addSubview(seperator)
    self.inputFieldView.isTranslucent = false
    self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any)
    self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)
    self.inputFieldView.removeFromSuperview()
Run Code Online (Sandbox Code Playgroud)

这对于ios版本10和9非常有用.它是带有"发送"按钮的文本视图.它位于屏幕的底部,按下后,成为第一响应者,允许键盘上升并正确定位.

使用ios 11时,我甚至无法在底部点击它,所以我根本无法打字.

inputaccessoryview swift3 ios11

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