小编Pro*_*ber的帖子

那么CALayer不包含视图的内容位图?

来自文档:

"图层是轻量级对象(CALayer),虽然与视图类似,但实际上是分配给视图的模型对象."

轻量级对我来说排除了任何重要的内容位图.我相信CALayer是"真正的"东西,而UIView只是它的包装.每个视图在不同的树(模型,演示文稿,渲染)中有3个CALayers.那么没有3个位图?只有一个?

iphone cocoa-touch uiview ipad ios

7
推荐指数
1
解决办法
2662
查看次数

如何在完成后不删除CABasicAnimation?

很多人都在谈论在使用CABasicAnimation对象后保持它.

所以通过设置

removedOnCompletion = NO

动画完成后,动画对象将保持附加到图层.如何在不创建新的CABasicAnimation的情况下重新启动此动画?

保持这个对象有什么意义?我知道的唯一好处是我们可以设置removedOnCompletion = NO并设置kCAFillModeForwards,以便Core Animation不会将可视化表示还原回CALayer中的模型值.

但是如何重新使用动画,就像每个人都在谈论的那样?

iphone core-animation

7
推荐指数
1
解决办法
2884
查看次数

如何在OpenAL或Core Audio中调整Head相关传输函数(HRTF)?

OpenAL利用HRTF算法用立体声耳机伪造环绕声.然而,HRTF与用户头部和耳朵的形状之间存在重要的依赖关系.

简化,这意味着:如果您的头部/耳朵与他们实施的标准HRTF功能相差太大,环绕声效果会逐渐消失.

我还没有找到一种方法来调整导致HRTF算法的各种因素,例如头部直径,耳廓/外耳尺寸,耳朵到耳朵距离,鼻子长度和影响HRTF的其他重要特性.

是否有任何已知的方法来设置这些参数以获得最佳环绕声体验?

iphone audio openal core-audio ios

7
推荐指数
1
解决办法
2384
查看次数

为什么这个CATransition不起作用?

我正试图转换一个文本UILabel:

CATransition *animation = [CATransition animation];
animation.duration = 4;
animation.type = kCATransitionReveal;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
[label.layer addAnimation:animation forKey:nil];

label.text = resultDateStr;
Run Code Online (Sandbox Code Playgroud)

这很好用.但是当我把它设置为时kCATransitionFade,它就会停止工作.在iOS 4.3和5.0上测试任何想法?

iphone core-animation ios

7
推荐指数
1
解决办法
1528
查看次数

为什么-animateWithDuration:delay:options:animations:completion:阻止UI?

我一直认为Core Animation在后台执行动画.当我运行此代码时,我的UI交互将被阻止,直到动画结束:

[UIView animateWithDuration:4.5 
                      delay:0 
                    options:options 
                 animations:^{
                    oldView.alpha = 0;
                    newView.alpha = 1;
                 }  
                 completion:^(BOOL finished) {
                    if (finished) {
                        [oldView removeFromSuperview];
                    }
                 }];
Run Code Online (Sandbox Code Playgroud)

就像你可以看到持续时间很长,因此可以清楚地看到UI交互在动画时被阻止.

当动画开始时,UI交互开始被阻止,并且在动画结束时结束被阻止.

有没有办法同时启动UIView动画,以便不阻止UI交互?

编辑澄清:我知道UI被阻止,因为我不能与屏幕上的任何控件交互为什么这个动画运行.那些其他控件与动画内容无关,并且不在视图层次结构中的同一分支上.此动画运行时,将阻止整个UI.当我将其设置为10秒时,UI会在动画运行时被阻止10秒.在iPhone 4上使用iOS 4.2进行测试.

iphone core-animation uikit ipad ios

7
推荐指数
2
解决办法
2581
查看次数

如何使用+ fontWithName:size:创建字体,并指定字体系列名称和字体的特定样式信息?

文档说:

+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize
Run Code Online (Sandbox Code Playgroud)

完全指定的字体名称.此名称包含字体系列名称和字体的特定样式信息.

我找到的示例仅指定字体名称.但我想指定其他属性,例如中等字体重量等.这是如何编码到名称中的?

iphone uifont ipad ios

7
推荐指数
1
解决办法
4080
查看次数

如何在覆盖带有类别的方法时调用原始实现?

我试着弄清楚事情是如何运作的.所以我想当我用类别覆盖某些方法时,我会得到有趣的NSLogs.

@implementation UIView(Learning)
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    NSLog(@"-hitTest:withEvent: event=%@", event);
    return [self hitTest:point withEvent:event];
}
@end
Run Code Online (Sandbox Code Playgroud)

超级和自我在这里不起作用.有没有办法调用-hitTest的原始实现:withEvent:?我想要的是NSLog每次-hitTest:withEvent:在UIView上调用.

这仅用于个人学习目的.我希望看到活动的实施.

objective-c swizzling ios objective-c-category method-swizzling

6
推荐指数
1
解决办法
4263
查看次数

我如何判断我从-valueForKey返回的NSNumber:最初是int还是float?

原因是我必须回到房产中的确切价值.所以如果它是一个浮点数,我想调用-floatValue.但如果它是一个int,我想调用-intValue.

NSNumber是否记得它是如何初始化的?

objective-c foundation

6
推荐指数
1
解决办法
2272
查看次数

iOS是否有可自定义的进度条?

UIProgressView不允许任何自定义.我知道这并不是一件复杂的事情,但我仍然宁愿使用开源解决方案,而不是重新发明自己的车轮.

有吗?

iphone uiprogressview ipad ios progress-bar

6
推荐指数
1
解决办法
8787
查看次数

如何在没有预乘alpha的情况下获得真正的RGBA或ARGB颜色值?

我正在使用CGBitmapContextCreatekCGImageAlphaPremultipliedFirst选项创建一个位图上下文.

我制作了一个5 x 5的测试图像,其中包含一些主要颜色(纯红色,绿色,蓝色,白色,黑色),一些混合颜色(即紫色)和一些alpha变化.每次alpha分量不是255时,颜色值都是错误的.

我发现当我做类似的事情时,我可以重新计算颜色:

almostCorrectRed = wrongRed * (255 / alphaValue);
almostCorrectGreen = wrongGreen * (255 / alphaValue);
almostCorrectBlue = wrongBlue * (255 / alphaValue);
Run Code Online (Sandbox Code Playgroud)

但问题是,我的计算有时会减少3甚至更多.所以例如我得到的值为242而不是245的绿色,我100%确定它必须正好是245. Alpha是128.

然后,对于PNG位图中具有不同alpha不透明度的完全相同的颜色,我得到alpha = 255和green = 245.

如果alpha为0,则红色,绿色和蓝色也为0.这里所有数据都丢失了,我无法弄清楚像素的颜色.

如何完全避免或撤消这个alpha预乘,以便我可以根据真实的RGB像素值修改图像中的像素,就像在Photoshop中创建图像时一样?如何恢复R,G,B和A的原始值?


背景信息(这个问题可能没有必要):

我正在做的是:我采用UIImage,将其绘制到位图上下文,以便在其上执行一些简单的图像处理算法,根据之前的颜色移动每个像素的颜色.没什么特别的.但我的代码需要真正的颜色.当一个像素是透明的(意味着它的alpha小于255)时,我的算法不应该关心这个,它应该根据需要修改R,G,B,而Alpha保持不管它是什么.有时虽然它会向上或向下移动alpha.但我认为它们是两个不同的东西.Alpha控制透明度,而RGB控制颜色.

iphone core-graphics quartz-2d ipad ios

6
推荐指数
1
解决办法
3739
查看次数