我正在寻找一种简单的方法来从一个超级视图中删除所有的子视图,而不是逐个删除它们。 //I'm trying something like this, but is not working let theSubviews : Array = container_view.subviews for (view : NSView) in theSubviews { view.removeFromSuperview(container_view) } 我错过了什么? UPDATE 我的应用程序有一个主要的container_view 。 我必须添加不同的其他视图作为子视图container_view为了提供一种导航。 所以,当点击button“打开”一个特定的页面时,我需要删除allsubviews并添加新的。 更新2 – 一个工作解决scheme(OS X) 我猜苹果修复了它。 现在比以往任何时候都更容易,只需要打电话: for view in containerView.subviews{ view.removeFromSuperview() }
我只是将.m文件更改为.mm并使用C ++。 有没有办法做到这一点与斯威夫特?
我试图找出新的Apple Swift语言的东西。 比方说,我曾经在Objective-C中做过如下的事情。 我有readonly属性,不能单独更改。 但是,使用特定的方法,属性会以逻辑方式更改。 我以下面的例子,一个非常简单的时钟。 我会写在Objective-C中。 @interface Clock : NSObject @property (readonly) NSUInteger hours; @property (readonly) NSUInteger minutes; @property (readonly) NSUInteger seconds; – (void)incrementSeconds; @end @implementation Clock – (void)incrementSeconds { _seconds++; if (_seconds == 60) { _seconds = 0; _minutes++; if (_minutes == 60) { _minutes = 0; _hours++; } } } @end 为了一个特定的目的,我们不能直接触摸秒,分和小时,只允许使用方法每秒增加一秒。 […]
我觉得这很有趣。 我已经修好了,但是我想知道原因。 这里是错误: DataManager.swift:51:90: Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions DataManager.swift:51:90: Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions 。 为什么抱怨? 这似乎是最简单的expression式之一。 编译器指向columns + ");"; 部分 func tableName() -> String { return("users"); } […]
我打开字典中的两个值,在使用它们之前,我必须对它们进行投射并testing正确的types。 这就是我想到的: var latitude : AnyObject! = imageDictionary["latitude"] var longitude : AnyObject! = imageDictionary["longitude"] if let latitudeDouble = latitude as? Double { if let longitudeDouble = longitude as? Double { // do stuff here } } 但是如果让查询变成一个,我想打包两个。 所以这样的事情是这样的: if let latitudeDouble = latitude as? Double, longitudeDouble = longitude as? Double { // do stuff here […]
是只是我或Xcode 6(6.0.1)与Swift似乎是超级慢,当你input你的代码,尤其是自动完成? 一个普通的Objective-C类,即使在一个Swift项目中,也几乎和以前一样,所以它是Swift杀死它的。 有没有其他人遇到同样的不便? 你有什么想法如何提高性能? 我试图玩一些设置,但没有运气。 我当然也尝试重新启动Xcode和电脑没有运气。 没有其他重型应用程序是开放的 我使用的是2009年中期的MacBook Pro(2.26 GHz Intel Core 2 Duo),配备了8GB内存和SSD HD,虽然不是最新的产品,但仍然不是一个完整的垃圾。 我很兴奋地开始使用Swift,这实在令人惭愧,现在真的让人无法忍受。 想法/提示?
我有一个UITextField Ctrl-作为@Outlet在我的.swift类中拖动。 现在在viewDidLoad我使用这个代码 self.myTextField.keyboardType = UIKeyboardType.DecimalPad 当我在模拟器上启动我的应用程序,然后单击UITextField我有这个日志 Can't find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 2617181025_Portrait_iPhone-Simple-Pad_Default 我没有崩溃或东西,但键盘不显示。 我也试图从Storyboard设置它,但它是一样的。 我还注意到,每当我点击任何 UITextField ,键盘从不显示(但是没有显示默认键盘的日志) 我正在使用Xcode-Beta 3任何人都面临这个问题?
在WWDC 2013video中,Applebuild议在iOS 7的桌面视图中显示select器。如何在表格视图单元格之间插入视图并为其设置animation效果? 像这样,从苹果日历应用程序:
我有一个UITextField,我想扩大它的宽度,当点击。 我设置了约束条件,并确保左边的约束条件具有较低的优先级,然后我试图在右边进行animation处理。 这是我正在尝试使用的代码。 // move the input box UIView.animateWithDuration(10.5, animations: { self.nameInputConstraint.constant = 8 }, completion: { (value: Bool) in println(">>> move const") }) 这个工作,但似乎只是瞬间发生,似乎没有任何运动。 我试图把它设置为10秒,以确保我没有失去任何东西,但我得到了相同的结果。 nameInputConstraint是我控制从IB连接到我的类的约束的名称。 感谢您的帮助提前!
在我的应用程序,我有一个函数,使一个NSRURLSession并发出一个NSURLRequest使用 sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) 在这个任务的完成块中,我需要做一些计算,将UIImage添加到调用viewcontroller。 我有一个func叫 func displayQRCode(receiveAddr, withAmountInBTC:amountBTC) 这是UIImage添加计算。 如果我尝试在完成块中运行视图添加代码,Xcode会抛出一个错误,说我在后台进程中不能使用布局引擎。 所以我在SO上发现了一些代码,试图在主线程上排队一个方法: let time = dispatch_time(DISPATCH_TIME_NOW, Int64(0.0 * Double(NSEC_PER_MSEC))) dispatch_after(time, dispatch_get_main_queue(), { let returned = UIApplication.sharedApplication().sendAction("displayQRCode:", to: self.delegate, from: self, forEvent: nil) }) 但是,我不知道如何在这个函数调用中添加参数“receiveAddr”和“amountBTC”。 我该怎么做,或者可以有人build议一个方法调用添加到应用程序的主要队列的最佳方式?