小编leo*_*leo的帖子

有理解CGPathAddArc的问题

在iPad应用程序中,我想沿着一个中心点(768,512)和半径为512的弧逆时针移动一层.我希望它从12点开始(这是一个右上角)屏幕)并在6点钟(右下角)完成.

经过大量的尝试和失败后,我得到了代码

CGPoint origin = logo.layer.position;

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.calculationMode = kCAAnimationPaced;
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = YES;

CGMutablePathRef curvedPath = CGPathCreateMutable();
CGPathMoveToPoint(curvedPath, NULL, origin.x, origin.y);
CGPathAddArc(curvedPath, NULL, 768, 512, 512, -M_PI_2, M_PI_2, YES);
pathAnimation.path = curvedPath;
CGPathRelease(curvedPath);
pathAnimation.duration = 2;
[logo.layer addAnimation:pathAnimation forKey:@"curve"];
Run Code Online (Sandbox Code Playgroud)

但问题是我无法理解起始角度和结束角度参数.为什么我应该分别使用-M_PI_2和M_PI_2并将顺时针设置为YES?

我想我正在将物体从90度逆时针移动到270度,因此代码应该是
CGPathAddArc(curvedPath, NULL, 768, 512, 512, -M_PI_2, M_PI_2, YES);

在多个地方我可能错了,偶然得到了正确的结果.

请纠正我并帮助我理解两个角度参数:

由startAngle

The angle (in radians) from the horizontal that determines the starting point of the arc.
Run Code Online (Sandbox Code Playgroud)

endAngle

The angle (in radians) from …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch core-animation uiviewanimation

11
推荐指数
1
解决办法
4453
查看次数

为什么"现在的模态视图控制器"?

只是对模态视图控制器的使用感到好奇.何时以及为什么要使用它们?有指导方针吗?

我发现示例核心数据手册代码创建了一个导航控制器,只是为了呈现一个模态视图控制器.这是为什么?

   UINavigationController *navController = [[UINavigationController alloc] 
                                                 initWithRootViewController:addViewController];

    [self.navigationController presentModalViewController:navController 
                               animated:YES];
Run Code Online (Sandbox Code Playgroud)

这有功能上的原因吗?如果我们只是将addViewController推送到self.navigationController,它会工作吗?

iphone cocoa-touch modalviewcontroller ios

6
推荐指数
2
解决办法
9051
查看次数

如何在iphone/ipad联系人中模仿红色光泽删除按钮?

我想在我的应用程序中有一个绿色的"确定"按钮和一个红色的"取消"按钮.红色的看起来像:

在此输入图像描述

我想知道这是否可以通过编程方式完成而不是截屏 - > photoshop crop - >设置为IB中的自定义按钮

谢谢!狮子座

iphone cocoa-touch ipad

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

如何伪造内置的应用程序切换动画?

我的应用程序中有两个视图,我想用动画切换前景或背景.当我在应用程序之间快速切换时,我喜欢iOS的方式(双击主页按钮并点击任何应用程序).

是否可以直接使用该动画?(没关系,如果是私密的,我不会出售我的应用程序,只是出于学习目的.)

如果没有,有没有办法自己实现这个动画?参考或示例非常感谢!

提前致谢.

狮子座

iphone cocoa-touch core-animation ipad

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

NSNumber的副本没有分配新的内存

我正在为自定义A类实现copyWithZone方法,其中NSNumber指针被声明为(retain)属性

@class A <NSCopying>
{
  NSNumber *num;
}
@property (nonatomic, retain) NSNumber *num; // synthesized in .m file

-(id) copyWithZone:(NSZone*) zone {

   A *new = [[A alloc] init];
   new.num = [num copy];
   return new;
}
Run Code Online (Sandbox Code Playgroud)

当我调试时,我总是发现new.num与self.num的地址相同.

即使我使用

new.num = [NSNumber numberWithFloat: [num floatValue]];
Run Code Online (Sandbox Code Playgroud)

我仍然得到相同的地址.最后,我必须使用

new.num = [[[NSNumber alloc] initWithFloat:[num floatValue]] autorelease]
Run Code Online (Sandbox Code Playgroud)

实现我想要的结果.我只是想知道为什么NSNumber符合但复制时不返回新的内存地址?

谢谢

狮子座

iphone cocoa-touch objective-c ios

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

使用UIView动画从CATransition实现kCATransitionPush

苹果建议为iOS4及更高版本(此处)使用UIView动画块,但我非常喜欢带有kCATransitionPush效果的旧CATransition。如何使用UIView动画实现kCATransitionPush?我只在可用选项中看到四种类型的视图过渡(向左/向右翻转,向上/向下卷曲)

如果我自己实现,则计划创建一个新视图并在滑入旧视图的同时将其滑入。我不明白为什么苹果不在UIView动画中包含“推”效果。

谢谢!

狮子座

iphone cocoa-touch core-animation ios

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

CALayer将阴影投射到每个子图层,如何删除?

我有一个带有表视图的UIView容器,其单元格包含图像和按钮.

我想给最外面的容器添加一个阴影,但是当我这样做时,我发现阴影也被添加到所有图像和按钮中.如何在没有子层的情况下只为图层本身添加阴影?

码:

listContainer.layer.shadowColor = [UIColor blackColor].CGColor;
listContainer.layer.shadowOffset = CGSizeMake(3, 0);
listContainer.layer.shadowOpacity = .8;
listContainer.layer.borderColor = [UIColor blackColor].CGColor;
Run Code Online (Sandbox Code Playgroud)

谢谢!

iphone cocoa-touch core-animation ipad ios

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

关于plist的快速问题

我的应用程序可以从URL下载.plist并替换我在xcode中构建并随应用程序一起提供的那个吗?

谢谢狮子座

iphone cocoa-touch plist ios

3
推荐指数
1
解决办法
306
查看次数

tableview删除部分的最后一行

我已经花了很多时间研究stackoverflow/google并且研究过几个关于类似问题的帖子.然而,他们都没有解决我遇到的特殊问题.

简而言之,我有一个NSMutableArray的NSMutableDictionay(-ies).每个字典都包含一个NSMutableArray.当我删除数组中的最后一项时,我也想删除字典.在tableview文字中,我想在删除该部分的最后一行时删除该部分.

我确信数据源是一致的.

这篇文章:UITableView:删除带动画的部分建议如果要删除的行是最后一行,则直接删除该部分.

如果该部分是我的根数组中的最后一部分,这可以正常工作.

我发现的错误是,如果该部分不是最后一部分,那么它之后的部分将取代它.当系统正在绘制删除动画时,它会抛出一个NSInternalInconsistencyException.

说,我有第0部分和第1部分,都有一行.当我删除indexPath(0,0)时,我检测到0应该去,因为它只有一行,然后我删除0中的0commitEditingStyle

抛出异常是因为用户删除了第0节中的第0行,因此第0节中的结果行数应该从1更改为0.但是,删除后,旧的第1节现在变为第0节,它将返回行数第0节是1.

这里有什么建议吗?或者我错过了一些非常简单的事情?

我在commitEditingSytle中的代码:

[tableView beginUpdates];
[... remove the  item from array of this dictionary...]
// if last row in section, remove the section
NSNumber *section = [NSNumber numberWithUnsignedInteger: indexPath.section];
if ([[FoodTypes subtypes:section] count] == 0) 
{
    [...remove the dictionary from root array...]

    [tableView deleteSections: [NSIndexSet indexSetWithIndex: indexPath.section] withRowAnimation:YES];
}
else 
{
    // otherwise, remove the row only
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
[tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch uitableview ios

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

可以删除无法删除的iOS应用程序?

我正在开发一个用于临时分发的企业应用程序.我要求应用程序不应该被删除.即用户无法按住图标并按十字架以卸载应用程序.

怎么做?似乎所有股票应用程序都是不可移除的.

iphone cocoa-touch ipad ios

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

如何在后台"准备"一个视图?

我有两个视图,第一个是一个简单的视图,有一些关于使用的介绍,点击一个按钮就可以打开主视图.主视图有许多图像和两个自定义表,其中行由文本和图像组成,因此主视图的创建非常慢.探查器显示大部分时间由imageIO消耗(decode_mcu,png_read_filter_row,pmap_copy_page和decompress_onepass)

我想通过在加载第一个视图后立即创建主视图进行优化,当我单击该按钮时,它只是将该视图设置为可见或将该视图置于前面.

我试图在第一个视图的viewDidLoad中分配&初始化主视图

- (void)viewDidLoad
{
    [super viewDidLoad];
    rootVC = [[RootViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    rootVC.delegate = self;


}
Run Code Online (Sandbox Code Playgroud)

并在按钮的操作方法中执行此操作

- (IBAction)buttonUp:(id)sender {
    [self.view addSubview: rootVC.view];
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,装载仍然需要很长时间.我怎么能牺牲一些记忆来提供更好的用户体验?

谢谢

狮子座

iphone cocoa-touch uiviewcontroller uiview ipad

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