我试图通过子类化MKAnnotationView和重写drawRect方法来创建自定义注释视图.我希望从注释的位置偏移绘制视图,有点像MKPinAnnotationView它,因此引脚的点位于指定的坐标处,而不是引脚的中间位置.所以我设置框架位置和大小,如下所示.但是,它看起来不像我可以影响框架的位置,只有大小.图像最终被绘制在注释位置的中心.关于如何实现我想要的任何提示?
MyAnnotationView.h:
@interface MyAnnotationView : MKAnnotationView {
}
Run Code Online (Sandbox Code Playgroud)
MyAnnotationView.m:
- (id)initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier]) {
self.canShowCallout = YES;
self.backgroundColor = [UIColor clearColor];
// Position the frame so that the bottom of it touches the annotation position
self.frame = CGRectMake(0, -16, 32, 32);
}
return self;
}
- (void)drawRect:(CGRect)rect {
[[UIImage imageNamed:@"blue-dot.png"] drawInRect:rect];
}
Run Code Online (Sandbox Code Playgroud) 对于这个问题的喧嚣提前道歉,这是我对iOS编程音频方面的第一次探索.
我正在使用AVAudioRecorder类通过麦克风录制输入,使用以下设置字典.
NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
[settings setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
[settings setValue:[NSNumber numberWithFloat:11025.0] forKey:AVSampleRateKey];
[settings setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey];
[settings setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是当我尝试使用echonest-codegen库来生成指纹以识别播放的音乐时,问题就出现了.
别担心,如果你以前从未使用它,基本上我必须运行这个功能:
Codegen * pCodegen = new Codegen(const float* pcm[], int number_of_samples, int samples_offset);
Run Code Online (Sandbox Code Playgroud)
const float*pcm []是样本的缓冲区.我需要将我的输入转换为"浮动缓冲区".我一直被指向ExtAudioFile文档,但它们没有多大意义.有人能指出我正确的方向吗?我完全失去了!
非常感谢!
在您看来,如果我使用这样的参数初始化NSObject的单例子类:
- (MyObject *) initWithSomeParam:(NSString *)param{
self = [super init];
if (SharedInstance == nil){
SharedInstance = [super init];
SharedInstance.someProperty = param;
}
return self;
}
+ (MyObject *) objectWithSomeParam:(NSString *)param{
return [[self alloc] initWithSomeParam:param];
// Will the alloc cause a leak?
}
Run Code Online (Sandbox Code Playgroud)
用户无权访问实例方法,只能访问类.谢谢.
NSString *string = [myString stringByReplacingOccurrencesOfString:@"<wow>" withString:someString];
Run Code Online (Sandbox Code Playgroud)
我有这个代码.现在假设我的应用程序的用户输入了两个不同的字符串,我想用两个不同的其他字符串替换,我该如何实现呢?我不在乎它是否使用私有API,我正在为越狱平台开发.我的用户要么输入要么或者.我想用它们各自被替换的字符串替换那些字符串的出现:)
在此先感谢:P
我想在applicationSupportDirectory中创建一个目录.我的理解是applicationSupportDirectory不允许用户查看其中的数据.这就是我选择它的原因.但是,我在下面使用的代码似乎失败了,我不知道为什么.
谁能告诉我我做错了什么?谢谢!
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *applicationDirectory = [paths objectAtIndex:0]; // Get directory
NSString *dataPath = [applicationDirectory stringByAppendingPathComponent:@"drawings"];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]){
NSError* error;
if([[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error])
;// success
else
{
NSLog(@"Failed");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想在iOS应用程序中创建一个呼叫按钮,它会提示我提供的数字弹出.
这是我此时的代码:
@IBAction func btnCall(sender : AnyObject) {
UIApplication .sharedApplication() .openURL(url: "tel://0000000000")
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Cannot convert the expression's type 'Bool' to type 'NSURL!'
Run Code Online (Sandbox Code Playgroud)
任何帮助或提示都非常感谢!
从iOS 8开始,我的App运行得非常好,但是在测试这个应用程序时我发现了一个问题.它只发生在iPad上,只有我在横向模式下启动应用程序.如果它在Portrait中启动,一切都是正确的(没有旋转问题).如果我旋转设备(模拟器或真实设备),视图将旋转出屏幕,只显示实际视图的剪切,其余为黑色.


其他人确实注意到这样的错误?我该如何解决?
我有一个文本框,我希望将书面文本添加到UIImage.
如何将NSString绘制为UIImage?
我搜索过,发现了很多例子,但没有一个例子.Xcode只是给了我很多错误.
简单地说,我想绘制一个NSString到UIimage.UIImage应与预定义的UIImageView大小相同,并放在中心位置.
有任何想法吗?
我的应用程序是一个带有多组分拾取轮的转换器.它用于转换一些变量.您可以看到的数字仅用于测试,没有什么重要的.
- (void)viewDidLoad
{
[super viewDidLoad];
_convertFrom = @[@"One (1)", @"Two (2)",
@"Three (3)", @"Four (4)", @"Five (5)"];
_convertRates = @[ @1.0f, @2.0f, @3.0f,
@4.0f, @5.0f];
_convertTo = @[@"One (1)", @"Two (2)",
@"Three (3)", @"Four (4)", @"Five (5)"];
_convertRates = @[ @1.0f, @2.0f, @3.0f,
@4.0f, @5.0f];
}
Run Code Online (Sandbox Code Playgroud)
我在iOS 6模拟器中测试应用程序时显示的数字有一个小问题.正如你在这里看到的:

当我试着沿着列表走下去时,数字就会改变.但它们的价值却没有.如果有人有时间检查出来并且可能找到解决方案,那将非常有帮助:)
这是在这种情况下可能很重要的其余代码:
#pragma mark -
#pragma mark PickerView DataSource
- (NSInteger)numberOfComponentsInPickerView:
(UIPickerView *)pickerView
{
return 2;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component
{
if (component == 0) {
return [_convertFrom …Run Code Online (Sandbox Code Playgroud) 我错过了一些关于NSDate dateByAddingTimeInterval如何使用几天的内容?这是我从特定日期(AIDate)减去33天的代码.AIDate的时间值为00:00 PST.
activityOne.ActivityDateTime = [AIDate dateByAddingTimeInterval:-33*24*60*60];
Run Code Online (Sandbox Code Playgroud)
如果AIDate等于太平洋标准时间4-9-2013 00:00,则上述代码将减去33天和1小时,其工作时间为太平洋标准时间3-6-2013 23:00.
ios ×9
iphone ×5
objective-c ×5
cocoa-touch ×1
core-audio ×1
draw ×1
mapkit ×1
mkannotation ×1
nsdate ×1
nsstring ×1
rotation ×1
swift ×1
uiimage ×1
uipickerview ×1