目前分類:iOS (195)

瀏覽方式: 標題列表 簡短摘要

 

小賢 發表在 痞客邦 留言(0) 人氣()

iOS 9之後有新的方式可以改status bar
https://www.jianshu.com/p/9f7f3fa624e7

小賢 發表在 痞客邦 留言(0) 人氣()

expr {{變數}} = {{想改的值}}

小賢 發表在 痞客邦 留言(0) 人氣()

 

var str = "Hello, playground+"
var allowCharactoers = CharacterSet.urlQueryAllowed
allowCharactoers.remove(Unicode.Scalar("+"))

print(str.addingPercentEncoding(withAllowedCharacters: allowCharactoers))

 

小賢 發表在 痞客邦 留言(0) 人氣()

參考資料:

小賢 發表在 痞客邦 留言(0) 人氣()

在Xcode 9.2 升級到9.3的時候,模擬器可正常Build,但在實機上面發生了Compile error: abort trap: 6,弄了很久,最後把compile 不過的code包成 function就行了


小賢 發表在 痞客邦 留言(0) 人氣()

想正確取得 button.titleLabel?.frame ,在設定完text後,需用button.setNeedsLayout()及button.layoutIfNeeded()

 

小賢 發表在 痞客邦 留言(0) 人氣()

自己SubClass UIView,然後再對layer做Gradient

 

小賢 發表在 痞客邦 留言(0) 人氣()

清 UIWebView, WKWebView, SafariViewController cookie 相關的解法的好文章

https://github.com/OAuthSwift/OAuthSwift/wiki/Logout

小賢 發表在 痞客邦 留言(0) 人氣()

將 weak 拿掉(變成strong ) 就行了@@

 

小賢 發表在 痞客邦 留言(0) 人氣()

 

小賢 發表在 痞客邦 留言(0) 人氣()

defaults write com.apple.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool NO

 

小賢 發表在 痞客邦 留言(0) 人氣()

使用 UITableViewHeaderFooterView ,而非 UITableViewCell來做 Header Section 就能解決這個問題....

 

小賢 發表在 痞客邦 留言(0) 人氣()


小賢 發表在 痞客邦 留言(0) 人氣()

View (設陰影)

   View (設圓角, maskToBound, clipToBound )

小賢 發表在 痞客邦 留言(0) 人氣()

sudo chown -R $(whoami):admin /usr/local && sudo chmod -R g+rwx /usr/local

 

小賢 發表在 痞客邦 留言(0) 人氣()

在該頁的ViewController中指定成不同的Title

例如:

小賢 發表在 痞客邦 留言(0) 人氣()

bosian$ pod update 'Fabric' 'Crashlytics'

 

小賢 發表在 痞客邦 留言(0) 人氣()

 

小賢 發表在 痞客邦 留言(0) 人氣()

 

import UIKit
import AVFoundation

extension Date {
    func toString(format: String) -> String {
        let dateFormat = DateFormatter()
        dateFormat.dateFormat = format
        
        return dateFormat.string(from: self)
    }
}

class ViewController: UIViewController {
    
    @IBOutlet weak var textView: UITextView!
    
    let synth = AVSpeechSynthesizer()
    var timer = Timer()
    
    @IBAction func startHandler(_ sender: UIButton) {
        
        timer.invalidate()
        timer = Timer.scheduledTimer(withTimeInterval: 5, repeats: true) { [weak self] (timer) in
            
            guard let weakSelf = self else {
                return
            }
            
            let text = "現在時刻:" + Date().toString(format: "HH:mm")
            weakSelf.textView.text = text
            
            let myUtterance = AVSpeechUtterance(string: text)
            myUtterance.voice = AVSpeechSynthesisVoice(language: "zh-TW")
            myUtterance.rate = 0.5
            weakSelf.synth.speak(myUtterance)
        }
        
        timer.fire()
    }
    
    @IBAction func endHandler(_ sender: UIButton) {
        timer.invalidate()
        synth.stopSpeaking(at: .word)
    }
}

 

小賢 發表在 痞客邦 留言(0) 人氣()