我试图在Swift中使用十六进制颜色值,而不是UIColor允许你使用的几个标准颜色值,但我不知道如何去做.
示例:我将如何#ffffff用作颜色?
我想制作一个简单的咖啡计算器.我需要以克为单位显示咖啡量.克的"g"符号需要附加到我用来显示金额的UILabel上.UILabel中的数字正在根据用户输入动态变化,但我需要在字符串末尾添加小写"g",其格式与更新数字不同.需要将"g"附加到数字上,以便随着数字大小和位置的变化,"g"随着数字"移动".我确信这个问题已经解决了,所以正确的方向链接会有所帮助,因为我已经搜索了我的小心脏.
我在文档中搜索了一个属性字符串,我甚至从应用程序商店下载了一个"Attributed String Creator",但结果代码是在Objective-C中,我使用的是Swift.什么是令人敬畏的,并且可能对其他开发人员学习这种语言有帮助,这是使用Swift中的属性字符串创建具有自定义属性的自定义字体的明显示例.这方面的文档非常令人困惑,因为没有非常明确的方法来解决这个问题.我的计划是创建属性字符串并将其添加到coffeeAmount字符串的末尾.
var coffeeAmount: String = calculatedCoffee + attributedText
Run Code Online (Sandbox Code Playgroud)
其中calculateCoffee是一个Int转换为字符串,"attributedText"是小写的"g",其中包含我想要创建的自定义字体.也许我会以错误的方式解决这个问题.任何帮助表示赞赏!
我有一个显示NSAttributedString的UITextView.这个字符串包含我想要点击的单词,这样当它们被点击时我会被回叫以便我可以执行一个动作.我意识到UITextView可以检测URL上的点击并回调我的委托,但这些不是URL.
在我看来,iOS7和TextKit的强大功能现在应该可行,但我找不到任何示例,我不知道从哪里开始.
我知道现在可以在字符串中创建自定义属性(虽然我还没有这样做),也许这些对于检测是否有一个神奇的单词被点击是有用的?在任何情况下,我仍然不知道如何拦截该敲击并检测敲击发生在哪个单词上.
请注意,不需要iOS 6兼容性.
我想创建现有swift类的类别,但IDE中没有选项可以这样做.
知道swift项目中是否存在类别?或者如何在swift项目中实现类似的功能?
类别和类扩展之间有什么区别.我相信它们都用于在现有类中添加自定义方法.有人可以对此有所了解吗?我们非常感谢您对代码的示例.
题
import Swift和之间有什么区别import Foundation?
直到我读这条评论被马丁- [R ,我甚至不知道有一个import Swift.
读
我找不到文档,谷歌搜索没有太多.
我尝试了什么
测试它显示import Swift没有给出任何编译错误,但这并没有真正回答我的问题.
如果我猜测,我会说您导入Swift for Swift项目,并导入Foundation for Objective-C项目,或者可能导入使用Objective-C类的Swift项目(如NSString).
在Playground中测试:
import Foundation
import Swift
var str = "Hello, playground"
let str2: NSString = "hello"
let str3: String = "hello"
Run Code Online (Sandbox Code Playgroud)
注释掉import Swift没有错误,str属于String类型.但是,注释掉import Foundation会给出"未声明的类型"错误NSString.
我的问题重新审视
我很高兴放弃基金会并且只使用Swift.所以,除非我特别需要使用旧的Objective-C类之一,否则我一直只能导入Swift?
我正在使用xcode 6 beta 6,我得到了一个没有参数的函数的奇怪错误.
这是功能
func allStudents ()-> [String]{
var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "Student")
request.returnsObjectsAsFaults = false
//Set error to nil for now
//TODO: Give an actual error.
var result:NSArray = context.executeFetchRequest(request, error: nil)
var students:[String]!
for child in result{
var fullname:String = child.valueForKey("firstName") as String + " "
fullname += child.valueForKey("middleName") as String + " "
fullname += child.valueForKey("lastName") as String
students.append(fullname)
}
return students
}
Run Code Online (Sandbox Code Playgroud)
这是电话
var all …Run Code Online (Sandbox Code Playgroud) 我正在将下面的Objective C类重写为Swift:
@implementation UIImage (Extra)
+ (UIImage *)validImageNamed:(NSString *)name
{
UIImage *image = [self imageNamed:name];
NSAssert(image, @"Unable to find image named '%@'", name);
return image;
}
Run Code Online (Sandbox Code Playgroud)
这要求作为一个方便的init实现,但是如何检查指定的初始化程序self.init(命名:)是否成功?
extension UIImage {
convenience init(validateAndLoad name: String!) {
self.init(named: name)
// need to assert here if self.init fails
}
Run Code Online (Sandbox Code Playgroud)
当self.init(named :)调用失败时,扩展的init停止执行.
我已经尝试创建一个UIImage实例并将其分配给自己,但这不会编译.
当然,可以像ObjC版本一样使用辅助方法:
extension UIImage {
class func validImage(named name: String) -> UIImage {
var image = UIImage(named: name)
assert(image == nil, "Image doesn't exist")
return image
}
Run Code Online (Sandbox Code Playgroud)
但有没有办法使用初始化程序实现这一点?
由于我们有面向对象编程,因此我们可以创建具有所有子类所需的所有功能的父类。那么扩展的目的是什么?我对这个问题有点困惑,请任何人帮助我。
swift ×7
ios ×5
objective-c ×3
fonts ×1
foundation ×1
import ×1
textkit ×1
uicolor ×1
uilabel ×1
uitextview ×1
xcode6-beta6 ×1