小编rag*_*ius的帖子

如何从animationDidStop中删除CALayer对象?

我正在尝试学习iOS/iPhone的核心动画.我的根层包含很多子层(sprite),当它们被移除时它们会旋转...

我的计划是添加旋转动画,然后在调用animationDidStop时删除精灵.问题是sprite图层不是animationDidStop的参数!

从animationDidStop中找到特定sprite图层的最佳方法是什么?是否有一种更好的方法可以在精灵被移除时使其旋转?(理想情况下,我想使用kCAOnOrderOut,但我无法使其工作)

-(void) eraseSprite:(CALayer*)spriteLayer {
    CABasicAnimation* animSpin = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    animSpin.toValue = [NSNumber numberWithFloat:2*M_PI];
    animSpin.duration = 1; 
    animSpin.delegate = self;
    [spriteLayer addAnimation:animSpin forKey:@"eraseAnimation"];    
}



- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag{
    // TODO check if it is an eraseAnimation
    //      and find the spriteLayer

    CALayer* spriteLayer = ??????   
    [spriteLayer removeFromSuperlayer]; 
}
Run Code Online (Sandbox Code Playgroud)

iphone animation core-animation ios

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

什么时候发布UIImage?

我使用以下代码绘制子图像

UIImage* subIm = getSubImage( large, rect );
[subIm drawInRect:self.bounds];
Run Code Online (Sandbox Code Playgroud)

其中getSubImage定义如下

    UIImage* getSubImage(UIImage* uim, CGRect rc){
      CGImageRef imref  = CGImageCreateWithImageInRect(uim.CGImage, rc); 
      UIImage*   sub = [UIImage imageWithCGImage:imref];
      CGImageRelease(imref);
        NSLog(@"subimage retainCount=%d", [sub  retainCount]); // is 1
      return sub;
   }//getSubImage
Run Code Online (Sandbox Code Playgroud)

代码是否正确?

"CGImageRelease"imref安全吗?

有子"CGImageRetained"imref?

我应该释放subIm(如果我这样做,我会收到错误)吗?

subIm是否包含在自动释放池中,如果是,我怎么知道这个?

通常,可以检查自动释放池中是否包含对象(用于调试目的)?

iphone memory-management autorelease cgimage ios

5
推荐指数
3
解决办法
2770
查看次数

奇怪的是,为什么我的abs函数返回-0?

以下abs函数有时会返回-0 (减零)

inline float abs(float a){
    return( a>=0.0f? a :-a);
}
Run Code Online (Sandbox Code Playgroud)

更具体地说,该语句 sprintf(str, "%.2f", abs(-0.00f) );产生"-0.00",这很烦人,因为字符串显示给用户.

题:

1)为什么会产生-0

2)如何解决?

PS:我正在使用xcode(目标)c编译器.

c objective-c

5
推荐指数
2
解决办法
600
查看次数

sqlite为什么找不到此行?

我正在使用sqlite3。我的测试表包含两行(请参见屏幕转储图像),但是我无法使用

SELECT * FROM test WHERE word =“ id”

声明。sqlite为什么找不到该行?

(我认为问题在于一个属性也称为“ id”,因为我发现,如果该属性id2改为命名,则select语句将起作用。)

在此处输入图片说明

sql sqlite

5
推荐指数
1
解决办法
907
查看次数

XCODE 无法加载平台

我正在尝试学习 iPhone 编程,并且刚刚将 xcode 升级到版本 3.2.4(以及 iOS 4.1)。

当我创建一个新项目时,我收到如下所示的“内部错误”。怎么了?(顺便说一句,我在控制台中看不到任何消息)

Internal Error

File:   /SourceCache/DevToolsBase/DevToolsBase-1705/pbxcore/Target.subproj/PBXTarget.m
Line:   1603
Object: <PBXNativeTarget:0x20088e7c0>
Method: createPropertyExpansionContextWithBuildState:

Platform failed to completely load.  Examine Console Log for error messages.
Run Code Online (Sandbox Code Playgroud)

iphone xcode

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

为什么我的iOS应用程序无法在我的iPod touch上运行?

我已经编写了一个通用的iOS应用程序,可以在我的iPhone和iPad上正常运行,但不是在我的旧iPod touch上.X代码甚至不传输二进制文件.它只是说

在devicename上完成运行程序名

部署目标是4.2.(iPod touch运行4.2.1,它有2.1 GB的可用空间).

我该如何解决这个问题?

ios

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

动画完成后如何删除图层?

我正在制作一个iOS应用程序。我有几个CALayer对象,最终将通过(缩小)动画删除。当动画完成并被调用时,我想从超级视图中删除该对象并删除它。animationDidStop:finishedCALayer

  1. 但是我怎样才能把CALayer物体放进 animationDidStop:finished去呢?我会猜到 CAanimation-object有一个指向该层的指针,但是我在文档中找不到它。
  2. 有没有更好的方法来解决此问题?(实际上,我在同一个图层上添加了多个动画对象,理想情况下,我只想在最后一个动画完成时才删除该图层)

iphone animation calayer caanimation ios

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

如何检测Apple TV遥控器上触摸板上的点击按键?

如何在siri遥控器的触摸板上检测到"点按",而不仅仅是点按?

编辑:我的主要问题是我的视图有一个接收该事件的UIButton.

swift tvos siri-remote

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

tvos如何让用户更自由地移动焦点?

我正在构建一个卡片游戏(用于tvos),用户应该能够从棋盘上移除卡片.在游戏结束时,只有几张牌可以留在棋盘上,并且它们可以例如被安排为下图中的按钮.

如何让用户将焦点从说按钮1移动到按钮0或2?

在SO的类似问题的未被接受的答案中,有人建议应该使用UIFocusGuide.我不认为答案适用于我的问题,因为在这种方法中,必须preferredFocusedView提前告知焦点指南(例如在用户在siri-remote中滑动之前)!在我的情况下,首选的下一个焦点取决于滑动方向,例如 focusHeading.

在此输入图像描述

tvos focus-engine

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

为什么Calendar.current.firstWeekday == 2?

在我的游乐场,Calendar.current.firstWeekday == 1,我将其解释为

"星期一是我住的一周的第一天(瑞典)"

但是当我运行模拟器时,Calendar.current.firstWeekday == 2,我不明白为什么!(在模拟器的设置中,我将区域设置为"瑞典").

let c = Calendar.current
print(c) // prints "gregorian"
let first = Calendar.current.firstWeekday // this is 2 !!!
Run Code Online (Sandbox Code Playgroud)

问题:为什么Calendar.current.firstWeekday == 2我该如何解决这个问题?

ios-simulator swift

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