我正在尝试提取a的rgb组件,UIColor
以便手工构建a 中的像素CGBitmapContext
.以下示例代码适用于大多数UIColor
常量,但令人困惑,并非全部.以机智:
CGColorRef color = [[UIColor yellowColor] CGColor];
const float* rgba = CGColorGetComponents(color);
float r = rgba[0];
float g = rgba[1];
float b = rgba[2];
float a = rgba[3];
NSLog( @"r=%f g=%f b=%f a=%f", r, g, b, a);
Run Code Online (Sandbox Code Playgroud)
[UIColor yellowColor]
如上所述,上述结果为
r = 1.000000 g = 1.000000 b = 0.000000 a = 1.000000.
[UIColor redColor]
给出r = 1.000000 g = 0.000000 b = 0.000000 a = 1.000000,再次如预期的那样.同样的blueColor
和greenColor
.
然而,结果[UIColor …
为什么要弄清楚如何在iPhone上绘制Unicode字符这么难,在此过程中得出简单的字体指标,例如每个成像字形在选择字体中的宽度?
它看起来很简单NSLayoutManager
,但显然手机上没有这个API.人们这样做的方式似乎是使用私有API CGFontGetGlyphsForUnichars
,它不会让你通过Apple看门人进入App商店.
有人能指出我的文档,说明如何做到这一点?我快速失去了头发.
霍华德
我试图理解[NSData writeToFile:options:error:]返回的值的含义.该方法返回BOOL,根据Apple的文档,如果操作成功,则为"YES,否则为NO".
很公平,但如果它不是,我会假设错误参数将被设置为某些可检索的NSError*值.然而,在我遇到的结果中,情况并非如此.因此我有点困惑,不知道如何确定导致失败的原因.
也就是说,我有这个代码(或多或少):
NSError* error = nil;
BOOL success = [data writeToFile: filePath error: &error];
if ( error )
NSLog( @"error = %@", [error description] );
Run Code Online (Sandbox Code Playgroud)
success
结果是NO
在我正在运行的代码中,但该NSLog
语句永远不会执行.怎么会?
霍华德
我正在使用相对于其超视图在屏幕上[aSubview touchesBegan]
移动aSubview
的位置.它的超级视图并不比子视图本身大.这很简单,如下面的代码段所示:
UITouch* touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:[self superview]];
self.center = touchPoint;
Run Code Online (Sandbox Code Playgroud)
然而,一旦a aSubview
被移动,只要它的任何部分超出其超视图的范围,该部分中的触摸就不再注册.换句话说,touchesBegan
不再开火.aSubview
无论在哪里移动与其超级视图相关,我都希望能够进行注册.
有什么想法吗?
霍华德
我目前UISegmentedControl
正在以视图控制器的viewDidLoad
方法以编程方式创建,并通过分配给视图控制器的导航栏将其添加到视图控制器的方法中self.navigationItem.titleView
.
这很容易,但我希望能够在Interface Builder中做到这一点,到目前为止还没有弄清楚如何.谷歌也没有多少帮助.有人可以描述如何在IB中执行此操作或指向在线示例吗?我非常感激.谢谢,霍华德