我有一个UICollectionViewController,它使用标准UICollectionViewFlowLayout来显示单个垂直的单元格列.我试图在点击单元格时在单元格上创建展开/折叠动画.我使用以下代码来完成此任务:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath (NSIndexPath *)indexPath
{
[self.feedManager setCurrentlySelectedCellIndex:indexPath.item];
[self.collectionView performBatchUpdates:nil completion:nil];
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
//Return the size of each cell to draw
CGSize cellSize = (CGSize) { .width = 320, .height = [self.feedManager heightForCellAtIndexPath:indexPath] };
return cellSize;
}
Run Code Online (Sandbox Code Playgroud)
我的管理对象上的'selectedCellIndex'属性告诉数据模型返回heightForCellAtIndexpath内的展开或折叠大小:
[self.collectionView performBatchUpdates:nil completion:nil];
Run Code Online (Sandbox Code Playgroud)
然后该performBatchUpdates:completiong:方法很好地动画了这个尺寸变化.然而!当动画发生时,扩展单元格可能会导致屏幕底部的部分可见单元格离开屏幕.
如果是这种情况,我随后会折叠此单元格,现在关闭屏幕单元格将在没有动画的情况下捕捉到其旧位置,而所有其他可见单元格将根据需要进行动画处理.我的直觉说这是正确的行为,因为在执行折叠动画时单元格不在屏幕上,并且没有包含在动画渲染过程中.我的问题变成了,我该如何防止这种情况发生?
我宁愿所有细胞一起动画,无论它们是否在屏幕外.有什么想法吗?
我刚刚练习OCMock,我面临的问题是
我有一个名为fooreturn的CGRect方法,此方法是从另一个方法调用的callFoo.
-(CGRect)foo {
return CGRectMake(10, 10, 10, 10);
}
-(void)callFoo {
CGRect rect = [self foo];
NSLog(@"%@",NSStringFromCGRect(rect));
}
Run Code Online (Sandbox Code Playgroud)
我对callFoo方法的单元测试如下.
- (void)test__callFoo__invokesWithMockingFoo
{
ViewController *sut = [[ViewController alloc] init];
id master = [OCMockObject partialMockForObject:sut];
CGRect rect = CGRectMake(0, 0, 0, 0);
[[[master expect] andReturnValue:OCMOCK_VALUE(rect)] foo];
[sut callFoo];
[master verify];
}
Run Code Online (Sandbox Code Playgroud)
当此测试用例运行,我当它到达得到了意想不到的崩溃CGRect rect = [self foo];
,我想知道为什么这种崩溃是如果我们回到发生CGRect的mocked method,以及如何解决这个崩溃.
任何人都可以帮助解决这个问题.
提前致谢.
PS:如果我用NSValue替换CGRect,这可以正常工作. As shown below
-(NSValue …Run Code Online (Sandbox Code Playgroud) 我UICollectionView在单元格内部有标签,可以定期自动更改.当此更新触发时,我调用reloadDataUICollectionView并设置单元格以更改背景颜色[UICollectionViewCell setHighlighted:].
问题是如果用户按住某个单元格然后进行更新,则当用户释放该单元格时会保持突出显示并且也不能再进行选择.
我注意到dequeueReusableCellWithReuseIdentifier:forIndexPath:reloadData之后在单元格上调用setHighlighted.
我也试过reloadSections:而不是reloadData,这解决了细胞被"卡住"的问题,但是当它被调用时会导致细胞淡出并进入细胞.
将呼叫置于内部performBatchUpdates:似乎也无法解决问题.
我在这里遇到一个奇怪的问题.
出于某种原因,我在视图控制器中使用方向更改时禁用动画[UIView setAnimationsEnabled:NO];
但是当存在警报视图时,如果我更改了方向,那么它会产生奇怪的结果.
附加的屏幕截图是我将方向更改为横向时.

请注意:我使用的是标准版UIAlertView,它是默认覆盖图,它在警报视图出现时显示,此处不涉及自定义.
根据文档
If you disable animations, code inside subsequent animation blocks is still executed but no animations actually occur. Thus, any changes you make inside an animation block are reflected immediately instead of being animated.
所以它不应该影响默认覆盖的大小调整. Is it a restriction in disabling animation !??
我不明白为什么我会这样.有谁可以帮助解决这个问题.
我正在尝试将数据发送到服务器并获得响应.数据到达服务器但我没有得到任何响应.响应数据的值是nil bcd,它正在抛出异常,
-JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=11 \"Unexpected end of string\" UserInfo=0x4e2dd70 {NSLocalizedDescription=Unexpected end of string}"
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我....
我的代码:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.0.83:8082/WebServiceProject/AcessWebservice?operation=login"]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
NSURLResponse *theResponse =[[NSURLResponse alloc]init];
NSError *theError = NULL;
NSArray *keys = [NSArray arrayWithObjects:@"UserId", @"Password", nil];
NSArray *objects = [NSArray arrayWithObjects:@"rajin.sasi", @"abhi1551", nil];
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
NSString* jsonString = [jsonDictionary JSONRepresentation];
SBJSON *jsonParser = [SBJSON new];
[jsonParser objectWithString:jsonString];
NSLog(@"Val of json parse obj is %@",jsonString);
[request …Run Code Online (Sandbox Code Playgroud) 我正在研究UIAutomation.我需要在应用程序处于后台时更改位置.我试过以下代码行:
var target = UIATarget.localTarget();
UIATarget.localTarget().deactivateAppForDuration(30);
target.setLocation({longitude:77.50, latitude:12.50});
Run Code Online (Sandbox Code Playgroud)
但是target.setLocation直到应用程序到达前台才会被调用.
任何人都可以告诉我如何在应用程序处于后台时更改位置.
有谁能告诉我如何在我的iOS应用程序中实现payTm支付网关.在互联网上搜索了很多,但无法得到任何结果.不确定他们是否提供任何SDK或API.
我正在寻找主要集中在印度的支付网关.发现One97's Paytm Payments但不确定如何在iOS应用中实现此功能.
任何人都可以帮助我.
我的应用程序的图标包含一些文字.
所以我想用语言或国家来改变文本的语言.
有一篇帖子说不支持本地化应用图标:
但它是在一年半前的2010年12月发布的.
是否仍然无法按语言更改应用程序的图标?
不支持本地化设备上的应用程序图标和App Store上的图标吗?
或者只能在App Store上本地化图标?
我正在使用OCMock来帮助我使用Xcode为iPad应用程序进行测试驱动开发.我有这样的测试代码:
id mock = [OCMockObject mockForProtocol:@protocol(SomeProtocol)];
Vector direction = { 1.0f, 2.0f, 3.0f };
[[mock expect] setDirection:direction];
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,我收到警告和错误,如下所示:
警告:找到名为'setDirection:'的多个方法
错误:将''vector'发送到不兼容类型
'UISwipeGestureRecognizerDirection'的参数(又名'enum UISwipeGestureRecognizerDirection')
显然,编译器无法确定模拟应该是什么类型的对象.我不知道如何指定它应该处理来自SomeProtocol协议的setDirection方法而不是来自另一个类的setDirection方法.
如何成功构建这样的测试用例?
我一直在Xcode中使用UIPageController模板来创建一个交互式书籍.
在这个应用程序中,页面加载后,每个页面都会播放不同的音频文件.
当我点击页面的一个角落时,它的效果很好(第一页的音频停止,第二页的音频开始,没有可观察到的重叠).
当我滑动手指,拖动页面时会出现问题.就像在iBooks上一样,我可以在转换过程中保持页面,看到两个页面,但这会导致两个页面的音频重叠.
最理想的情况是,我希望第一页的音频在转换开始后立即停止,第二页的音频在转换结束后立即开始(页面卷曲到达屏幕的末尾),但是其中一个仅这些就能给我一个好结果.
问题是我找不到添加[audioFromPage stop]和[audioFromPage play]的地方,以便没有重叠.
我试图将这些行添加到setViewControllers:direction:animated:completion:方法以及viewControllerAfterViewController和viewControllerBeforeViewController方法,但它们都没有工作.
你们对如何解决这个问题有什么想法吗?
我知道这是一个愚蠢的问题,但我知道如何做到这一点.从这个链接 ,请求的链接可以返回NSURLconnection的json数据?我希望有人检查这个链接并告诉我这是否可能,因为我是这个东西的新手.
编辑:
我尝试过NSJSONSerialization
- (void)viewDidLoad
{
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.goalzz.com/main.aspx?region=-1&area=6&update=true"]];
connectionData = [[NSURLConnection alloc]initWithRequest:req delegate:self];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
Data = [[NSMutableData alloc] init];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[Data appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSError *jsonParsingError = nil;
id object = [NSJSONSerialization JSONObjectWithData:Data options:0 error:&jsonParsingError];
if (jsonParsingError) {
NSLog(@"JSON ERROR: %@", [jsonParsingError localizedDescription]); …Run Code Online (Sandbox Code Playgroud) 我正在制作一个应用程序,我想实现Siri /语音识别的概念.我试过这个,但没有得到输出正是它没有正确识别这个词.任何人都知道如何将语音转换为文本?如何访问Siri功能.如果有人知道这个实现,请告诉我.
谢谢大家.
ios ×12
iphone ×6
objective-c ×3
ocmock ×2
xcode ×2
animation ×1
flowlayout ×1
icons ×1
iphone-4 ×1
json ×1
localization ×1
reloaddata ×1
siri ×1
uialertview ×1