当我开始使用SoundEngine(来自CrashLanding和TouchFighter)时,我读过一些人建议不要使用它,因为据他们说,它不够稳定.它仍然是我所知道的唯一解决方案,即在不学习C++和OpenAL的情况下播放音高和位置控制的声音,所以我忽略了警告并继续使用它.
但现在我开始担心了.2.2 SDK引入了AVFoundation.使用来自CrashLanding的SoundEngine(用于声音)和AVAudioPlayer(用于音乐),我发现SoundEngine在释放唯一的现有AVAudioPlayer时表现得很奇怪(所有声音都会停止,直到启动新的AVAudioPlayer).大约在2.2 SDK发布的同时,CrashLanding示例代码被神秘地从ADC站点中删除.我担心会有更多不幸的事情发生.
我的问题是,是否有人知道SoundEngine的开源替代品?甚至可能是使用OpenAL的C++库?
好的,我有我的普通应用程序处于纵向模式.我可以强制我的应用程序转到横向模式的视图(使用navigationcontroller和viewcontroller),如下所示:
- (void)viewWillAppear:(BOOL)animated {
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
}
Run Code Online (Sandbox Code Playgroud)
但是当我回到主菜单(tableview)时,它会直接回到肖像.我试试这段代码:
- (void)viewWillAppear:(BOOL)animated {
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用..
有任何想法吗?
我有几个CALayers我试图动画一个新的zPosition,每个层稍微延迟与其他层.
每个动画应该花费0.25秒并在上一个动画开始后0.05秒开始.在每个动画结束时,图层将从图层树中删除.
我已成功使用-animationDidStop:finished:委托方法删除我们的图层,但我无法正确订购动画.
是否可以以这种方式安排动画,以及如何安排?
我的应用程序中存在问题.我试图找到用户的位置以达到最佳精确度,以确定他们的邮政编码.目前我有一个按钮,按下后,启动一个名为的方法locateMe.
-(IBAction)locateMe; {
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
Run Code Online (Sandbox Code Playgroud)
然后我实施了 didUpdateToLocation:
-(void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation; {
NSLog(@"Found location! %f,%f",newLocation.coordinate.latitude,newLocation.coordinate.longitude);
}
Run Code Online (Sandbox Code Playgroud)
我之前做过更复杂的事情,didUpdateToLocation但是当我测试了一些东西时,我意识到它发现的第一个位置至少不准确.所以,我把NSLog电话放在那里,它给了我一个类似于下面的输出......
Found location! 39.594093,-98.614834
Found location! 39.601372,-98.592171
Found location! 39.601372,-98.592171
Found location! 39.611444,-98.538196
Found location! 39.611444,-98.538196
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它首先给了我一个不正确的值,这在我的应用程序中引起了问题,因为它没有给出正确的位置.
所以,这是我的问题.有什么办法我可以等待位置经理找到最准确的位置吗?
提前致谢!
编辑:我想要这样的东西:
if (newLocation.horizontalAccuracy <= locationManager.desiredAccuracy) {
}
Run Code Online (Sandbox Code Playgroud)
但它永远不会被召唤!
我有一个使用加速度计的应用程序.有时,应用程序将在没有加速计数据更新的情况下启动.重新启动应用程序,有时问题仍然存在,有时它不会.甚至更奇怪,有时我可以尝试10次,一切都按预期工作.这是一个错误,或者可能是我遗漏的东西.调试时,加速度计未更新时,永远不会调用此代码:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
有谁知道如何从iPhone SDK更改UIPickerView控件中行(或行背景)的颜色?类似下面的行标题,但我也想改变行的颜色:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
Run Code Online (Sandbox Code Playgroud)
谢谢.
是否可以在iPhone上使用NSUserDefaults保存整数数组?我在我的.h文件中声明了一个数组:int playfield[9][11]它从文件中填充整数并确定游戏场地的布局.我希望能够有几个保存位置,用户可以保存他们的游戏.如果我做:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject: playfield forKey: @"slot1Save"];
Run Code Online (Sandbox Code Playgroud)
我收到指针错误.如果可以保存整数数组,那么最好的方法是什么,然后再检索它?
提前致谢!
当我开始开发iPhone时,我在某处读到可以将一个键值对附加到UIView.我知道所有UIViews都可以用作字典来存储你可能想要附加到它们的任何数据,以防止不必要的子类化.但是,我到处搜索找到了参考资料,并试图自己实现这种行为是徒劳的.
我尝试过这样的事情:
UIView *myView = [[UIView alloc] init];
[myView setValue:@"hello" forKey:@"world"];
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我认为上面的代码所做的是尝试将值@"hello"分配给属性@"world" - 这不是我想要的.
我正在努力实现的目标是什么?
这里的任何帮助将不胜感激.
谢谢!
缺口.
我有一个简单的cocoa用户界面,其中包含项目列表和搜索字段,分别使用NSTableView和NSSearchField实现.数据源和所有绑定都已设置好并且运行良好.我在列表中看到了我的数据,我可以通过在搜索字段中输入字符串来搜索它.当我输入更多文本时,列表中的项目数量会变得越来越小,最终会缩减为我正在搜索的项目.
现在,如何清除搜索字段中的文本并强制列表恢复正常?我可以通过手动清除文本(使用键盘)来实现这一点,但是当我尝试以编程方式执行此操作时,列表中的隐藏项目不会返回.
我正在使用这个:
[searchField setStringValue:@""];
Run Code Online (Sandbox Code Playgroud)
清除搜索字段中的文本,但不会重置列表.
有任何想法吗?是否有一个简单的[searchField reset]方法,我在文档中找不到?
我在自定义UITableViewCell的contentView中有一个UILabel数组.通过排序来确定每个标签的字体大小以形成标签云.在设置单元格(行)的方法中,我遍历适合该行的单词对象,为每个UILabel设置框架,如下所示:
CGRect theFrame = CGRectMake(xPosAdjuster,
theWordRow.rowHeight - thisWord.lblHeight,
thisWord.lblWidth,
thisWord.lblHeight);
UILabel *myLabel = [[UILabel alloc] initWithFrame:theFrame];
Run Code Online (Sandbox Code Playgroud)
这会使标签的帧对齐(请参见下图),但不幸的是,标签的填充是字体大小的函数.

有没有办法删除UILabel上的填充(边框)和/或完全计算它,以便我可以相应地调整帧的y位置?
谢谢
cocoa-touch ×7
iphone ×6
c++ ×1
cocoa ×1
core-audio ×1
dictionary ×1
objective-c ×1
openal ×1
uilabel ×1
uitableview ×1