相关疑难解决方法(0)

如何为类别创建swift类?

我想创建现有swift类的类别,但IDE中没有选项可以这样做.

知道swift项目中是否存在类别?或者如何在swift项目中实现类似的功能?

swift swift-extensions

84
推荐指数
3
解决办法
6万
查看次数

如何在Swift中为iOS创建垂直文本UILabel和UITextView?

如果你根据标题来讨论这个问题,但对蒙古语不感兴趣,你可能会寻找这个问答:


我一直在学习Swift,以便为传统的蒙古语开发iOS应用程序.问题是传统的蒙古语是从上到下,从左到右垂直书写的.我的问题是如何垂直显示文本并仍然有换行功能?

如果你和我待在一起,我会试着更清楚地解释这个问题.下面是我想要实现的文本视图的图像.如果外国脚本将你抛弃,我已经包含了遵循相同模式的英文文本.事实上,如果应用程序有任何英文文本要显示,这应该是它的外观.

在此输入图像描述

对于简单的单线UILabel,顺时针旋转90度就可以了.但是,对于多行UITextView,我需要处理换行.如果我只做一个普通的90度旋转,写的第一件事最终会在最后一行.

到目前为止,我已经制定了一个我认为可以解决这个问题的计划:

  1. 制作一个自定义字体,其中所有字母都垂直镜像.
  2. 顺时针旋转文本视图90度.
  3. 水平镜像文本视图.

在此输入图像描述

这应该照顾文本包装.

我可以做镜像字体.但是,我不知道如何为UITextView的旋转和镜像执行Swift编码.我发现以下链接似乎给解决方案的部分提示,但它们都在Objective C中,而不是在Swift中.

应用程序商店中有传统的蒙古应用程序(像这样这个),但我还没有找到任何人共享他们的源代码,所以我不知道他们在幕后做什么来显示文本.我打算让我的代码开源,以便将来的其他人不会为数百万阅读传统蒙古语的人开发应用程序.你可以给予这项努力的任何帮助,不仅是我,也是蒙古人民.即使你不了解自己,提出这个问题以使其更加明显也会有所帮助.

更新

@ sangonz的答案仍然是一个很好的答案,但我暂时将其标记为已接受的答案,因为我无法让一切顺利.特别:

  • 启用滚动(通过在滚动视图中嵌入自定义视图或通过子类化UIScrollView).在github项目中,@ sangonz说这应该很容易,但它不适合我.
  • 在方向改变时获得字线的重新布局(而不是拉伸).我认为通过更多的研究来解决这个问题应该不会太难.
  • 为什么文本行不会一直到视图的边缘?底部存在很大差距.
  • 如何取消链接自定义垂直视图的NSTextStorage与其他UITextView.(见这个问题)

到目前为止,我一直在使用上面提到的原始方法,但我真正想要的是获得类似@sangonz提议的工作方式.

我现在也在考虑其他方法

uitextview uilabel ios swift mongolian-vertical-script

46
推荐指数
1
解决办法
6142
查看次数

如何在Swift中为Int数组实现Hashable Protocol(自定义字符串结构)

我正在创建一个类似于a的结构String,除了它只处理Unicode UTF-32标量值.因此,它是一个数组UInt32.(有关更多背景,请参阅此问题.)

我想做的事

我希望能够将自定义ScalarString结构用作字典中的键.例如:

var suffixDictionary = [ScalarString: ScalarString]() // Unicode key, rendered glyph value

// populate dictionary
suffixDictionary[keyScalarString] = valueScalarString
// ...

// check if dictionary contains Unicode scalar string key
if let renderedSuffix = suffixDictionary[unicodeScalarString] {
    // do something with value
}
Run Code Online (Sandbox Code Playgroud)

问题

为此,ScalarString需要实现Hashable协议.我以为我可以这样做:

struct ScalarString: Hashable {

    private var scalarArray: [UInt32] = []

    var hashValue : Int {
        get {
            return self.scalarArray.hashValue // error
        } …
Run Code Online (Sandbox Code Playgroud)

arrays string hashtable ios swift

40
推荐指数
2
解决办法
3万
查看次数

如何在Swift中将Int转换为字符

我挣扎,未能超过十分钟在这里,我放弃.我需要一个Int转换为斯威夫特一个字符并不能解决它.

你如何在Swift中转换(强制转换)Int(整数)到Character(char)?

说明性问题/任务挑战

生成一个for循环,打印字母'A'到'Z',例如:

    for(var i:Int=0;i<26;i++) {      //Important to note - I know 
        print(Character('A' + i));   //this is horrendous syntax...
    }                                //just trying to illustrate! :)
Run Code Online (Sandbox Code Playgroud)

int var character ios swift

32
推荐指数
4
解决办法
1万
查看次数

如何在Swift中从UTF8创建一个String?

我们知道我们可以用UTF8代码单位打印每个字符吗?那么,如果我们有这些字符的代码单元,我们如何用它们创建一个String?

string utf-8 swift

17
推荐指数
4
解决办法
2万
查看次数

如何使用Unicode十六进制值(UTF-16)在Swift中表达字符串

我想在Swift中使用十六进制值编写Unicode字符串.我已经阅读了String和Character 的文档,所以我知道我可以直接在字符串中使用特殊的Unicode字符,如下所示:

var variableString = "Cat?" // "Cat" + Double Exclamation + cat emoji
Run Code Online (Sandbox Code Playgroud)

但我想使用Unicode代码点来做到这一点.文档(和这个问题)显示了字符,但不清楚如何为字符串做.

(注意:虽然答案现在对我来说显而易见,但在不久之前它并不明显.我在回答下面的问题,作为学习如何做到这一点的一种方法,也是为了帮助自己理解Unicode术语和Swift Characters和Strings如何工作.)

string unicode character ios swift

16
推荐指数
1
解决办法
9575
查看次数

如何使用NSMutableString附加NSMutableString?

NSMutableString *str, *str1;
Run Code Online (Sandbox Code Playgroud)

//在这里分配

我正在使用 [str appendString:str1]不工作. [str appendFormat:str1]不管用.

那么,如何追加NSMutableString另一个NSMutableString.

@str是一个empty string初始化nil.str1有一些价值.[str appendString str1]回报null

iphone objective-c

9
推荐指数
2
解决办法
1万
查看次数

有没有办法在swift中从utf16数组创建一个String?

我们知道String.utf16提供了codeunits或String.unicodeScalars提供了标量.

如果我们通过删除一些元素来操纵codeunits和unicodeScales等,有没有办法构造回来的结果字符串?

string bytearray swift

4
推荐指数
1
解决办法
3774
查看次数