Tag: swift2

如何自动调整WKWebView的内容?

要在Swift中自动缩放一个优秀的旧WebView中的网页,我只需要: var w:UIWebView w.scalesPageToFit=true 我无法findWKWebView的等效方法,而且网页在我的应用程序中显得太大了。 我如何自动调整WKWebView的内容? 我正在使用Xcode 7和Swift

如何修剪video文件,并转换为20秒的video与斯威夫特?

我想修剪一个video文件。 我想从图库中selectvideo并将其转换为15秒的video。 我正在关注Objective C的这个 链接 。它对我来说很好,但我是Swift语言的初学者。 任何人都可以帮助我在Swift中转换此代码? 以下是我在Objective C中的代码: -(void)cropVideo:(NSURL*)videoToTrimURL{ AVURLAsset *asset = [AVURLAsset URLAssetWithURL:videoToTrimURL options:nil]; AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetHighestQuality]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *outputURL = paths[0]; NSFileManager *manager = [NSFileManager defaultManager]; [manager createDirectoryAtPath:outputURL withIntermediateDirectories:YES attributes:nil error:nil]; outputURL = [outputURL stringByAppendingPathComponent:@"output.mp4"]; // Remove Existing File [manager removeItemAtPath:outputURL error:nil]; // […]

如何解决显示文件名使用两次的错误

我在Xcode 7.3.1快速工作。 现在我得到错误显示文件名称使用两次 ,我坚持以下错误。 <unknown>:0: error: no such file or directory: '/Users/mac/Desktop/develop/myApp/Manager.swift' <unknown>:0: error: filename "Manager.swift" used twice: '/Users/mac/Desktop/develop/myApp/Manager.swift' and '/Users/mac/Desktop/develop/myApp/MyApp/module/Manager.swift' 你可以帮我吗

Swift 2 addObserver特定的textField与对象参数

据我了解, addObserver方法的object参数是你想要接收通知的对象。 大多数时候,我认为它nil (我认为这是因为指定types的通知是从所有对象中获取的)。 在我的特殊情况下,我在屏幕的顶部和屏幕的底部有一个文本字段,我希望只有当用户点击底部文本字段,而不是顶部的时候,视图才会向上移动。 所以我在viewWillAppear调用下面的方法 func subscribeToKeyboardNotifications() { NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: self.bottomTextField) NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: self.bottomTextField) } keyboardWillShow:和keyboardWillHide:select器调用方法来重新定位视图的框架。 我试图离开object参数nil但是会从两个文本字段接收通知。 我尝试设置object参数self.bottomTextField (如上所示),但不接收来自任何文本字段的通知。 我的问题是双重的。 首先,我正确理解addObserver方法(特别是object参数),其次,为什么不从self.bottomTextField注册通知。 谢谢! 解决scheme:我知道这不是我所问的确切问题的解决scheme,但是我最终做了什么以使视图向上移动,只需点击底部的文本字段即可: func subscribeToKeyboardNotifications() { NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: nil) } 然后在keyboardWillShow:方法中我有: func keyboardWillShow(notification: NSNotification) { […]

Swift,单击时自定义UIButton不起作用

我有一个用xib文件创build的自定义UIButton。 当我在我的视图上使用自定义button时,按下button时它不起作用。 我的RoundBtn.swift文件: import UIKit @IBDesignable class RoundBtn: UIButton { var nibName = "RoundBtn" @IBOutlet weak var btnImageView: UIImageView! @IBOutlet weak var btnLabel: UILabel! @IBInspectable var image: UIImage? { get { return btnImageView.image } set(image) { btnImageView.image = image } } @IBInspectable var label: String? { get { return btnLabel.text } set(label) { btnLabel.text = […]

错误:typesstring的值没有成员componentsSeparatedByCharactersInSet

以下代码将引发以下错误:“typesstring的值没有成员componentsSeparatedByCharactersInSet” 这个代码是从另一个在swift版本1或2中工作的项目,但不再有效。 import Foundation extension String { func split() -> [String] { return self.componentsSeparatedByCharactersInSet( CharacterSet.whitespaceAndNewlineCharacterSet()) .filter({$0 != ""}); } } extension Array { func unique<T: Equatable>() -> [T] { var uniqueValues = [T](); for value in self { if !contains(uniqueValues, value as T) { uniqueValues.append(value as! T); } } return uniqueValues; } func first<T>(test:(T) -> […]

UITextFieldinput金额

我正在开发一个销售点应用程序。 所以我想 比方说用户input100000但我希望它自动显示100,000 。 1000000 1,000,000变成1,000,000 第二个问题是,我不希望用户能够input. 他们自己。 第三个问题是,既然这是钱,我们不能让用户在开始时input0。 有任何想法吗? 到目前为止,我已经设法限制input只有十进制数字 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { let numberSet: NSCharacterSet = NSCharacterSet.decimalDigitCharacterSet().invertedSet; return string.stringByTrimmingCharactersInSet(numberSet).length > 0 || string == ""; } 非常感谢你 PS:我不需要任何小数位,我们还需要考虑当用户改变光标位置时,退格

方法Swizzling不起作用

我想利用方法调整,但我无法得到甚至简单的例子为我工作。 我可能误解了这个概念,但据我所知,它允许交换方法实现。 给定两个方法,A和B,我想交换他们的实现,调用A会执行B代替。 我偶然发现了几个例子( example1和example2 )。 我用一个类创build了一个新项目来testing这个。 class Swizzle: NSObject { func method() { print("A"); } } extension Swizzle { override class func initialize() { struct Static { static var token: dispatch_once_t = 0; } // make sure this isn't a subclass if (self !== Swizzle.self) { return; } dispatch_once(&Static.token) { let originalSelector = Selector("method"); […]

从协议扩展调用select器

我正在构build简单的主题引擎,并希望有一个扩展,它将UISwipeGestureRecognizer添加到UIViewController 这是我的代码: protocol Themeable { func themeDidUpdate(currentTheme: Theme) -> Void } extension Themeable where Self: UIViewController { func switchCurrentTheme() { Theme.switchTheme() themeDidUpdate(Theme.currentTheme) } func addSwitchThemeGestureRecognizer() { let gestureRecognizer = UISwipeGestureRecognizer(target: self, action:#selector(Self.switchCurrentTheme)) gestureRecognizer.direction = .Down gestureRecognizer.numberOfTouchesRequired = 2 self.view.addGestureRecognizer(gestureRecognizer) } } 当然编译器不能find#selector(Self.switchCurrentTheme)因为它没有通过@objc指令公开。 是否有可能将此行为添加到我的扩展? 更新: Theme是一个Swift枚举,所以我不能在Themeable协议前添加@objc

如何解决expression式的types在swift 2中没有更多的上下文

我已经升级到Swift 2.0,当我尝试录制声音时,我完全无法理解这一点: expression的types是不明确的,没有更多的上下文 在var recordSettings 我该怎么办才能解决这个错误,更重要的是为什么呢? var recordSettings = [ AVFormatIDKey: kAudioFormatAppleLossless, AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, AVEncoderBitRateKey : 320000, AVNumberOfChannelsKey: 2, AVSampleRateKey : 44100.0 ] var dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) var docsDir: AnyObject = dirPaths[0] var soundFilePath = docsDir.stringByAppendingPathComponent("tempRecordzz") var soundFileURL:NSURL = NSURL(fileURLWithPath: soundFilePath) var error: NSError? do { recorder = try AVAudioRecorder(URL: soundFileURL, settings: […]