我正在尝试更改UISegmentedControl的文字阴影位置。要做到这一点,documentation说我需要传入包含UIOffset结构的NSValue。
UITextAttributeTextShadowOffset
Key to the offset used for the text shadow in a text attributes dictionary.
The corresponding value is an instance of NSValue wrapping a UIOffset struct.
Available in iOS 5.0 and later.
Declared in UIStringDrawing.h.
问题是NSValue对于UIOffset结构没有这样的包装方法 - 只需搜索文档。我看到很多sample code使用这个不存在的函数。
[NSValue valueWithUIOffset:UIOffsetMake(0, 1)]
当我尝试运行它时崩溃了。我不明白有多少示例代码可以运行它。
答案 0 :(得分:5)
查看NSValue UIKit Additions,这是一个类别,除了其他有用的东西之外,它还会添加您所使用的-[NSValue valueWithUIOffset:]
方法。
答案 1 :(得分:1)
它可能不在文档中,但它存在,并且有效:
NSValue *uiOffsetValue = [NSValue valueWithUIOffset:UIOffsetMake(0, 1)];
NSLog(@"%@", uiOffsetValue);
// outputs "UIOffset: {0, 1}"
你是什么意思,当你试图运行它时会崩溃?如果该方法不存在,那么它甚至不应该编译。如果您的应用程序编译但崩溃,则问题必须是其他问题。