小编Mat*_*uch的帖子

如何更改自定义MKAnnotationView的帧位置?

我试图通过子类化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)

iphone mapkit mkannotation

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

将AVAudioRecorder输入转换为浮点缓冲区

对于这个问题的喧嚣提前道歉,这是我对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文档,但它们没有多大意义.有人能指出我正确的方向吗?我完全失去了!

非常感谢!

objective-c core-audio ios

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

类方法中的IOS内存泄漏

在您看来,如果我使用这样的参数初始化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)

用户无权访问实例方法,只能访问类.谢谢.

iphone objective-c ios

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

如何用多个其他字符串替换多个字符串的出现次数[NSString]

NSString *string  = [myString stringByReplacingOccurrencesOfString:@"<wow>" withString:someString];
Run Code Online (Sandbox Code Playgroud)

我有这个代码.现在假设我的应用程序的用户输入了两个不同的字符串,我想用两个不同的其他字符串替换,我该如何实现呢?我不在乎它是否使用私有API,我正在为越狱平台开发.我的用户要么输入要么或者.我想用它们各自被替换的字符串替换那些字符串的出现:)

在此先感谢:P

iphone objective-c nsstring ios

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

以编程方式创建目录

我想在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)

objective-c nsfilemanager ios

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

来自iOS应用的拨号号码

我想在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)

任何帮助或提示都非常感谢!

iphone ios swift

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

这是iOS 8 Bug(轮换方向问题)吗?

从iOS 8开始,我的App运行得非常好,但是在测试这个应用程序时我发现了一个问题.它只发生在iPad上,只有我在横向模式下启动应用程序.如果它在Portrait中启动,一切都是正确的(没有旋转问题).如果我旋转设备(模拟器或真实设备),视图将旋转出屏幕,只显示实际视图的剪切,其余为黑色.

在此输入图像描述

在此输入图像描述

其他人确实注意到这样的错误?我该如何解决?

rotation ios

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

绘制文本并添加到UIImage iOS 5/6

我有一个文本框,我希望将书面文本添加到UIImage.

如何将NSString绘制为UIImage?

我搜索过,发现了很多例子,但没有一个例子.Xcode只是给了我很多错误.

简单地说,我想绘制一个NSString到UIimage.UIImage应与预定义的UIImageView大小相同,并放在中心位置.

有任何想法吗?

core-graphics draw uiimage ios

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

UIPickerView显示错误的标题

我的应用程序是一个带有多组分拾取轮的转换器.它用于转换一些变量.您可以看到的数字仅用于测试,没有什么重要的.

- (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模拟器中测试应用程序时显示的数字有一个小问题.正如你在这里看到的:

截图

http://imgur.com/q4uxm

当我试着沿着列表走下去时,数字就会改变.但它们的价值却没有.如果有人有时间检查出来并且可能找到解决方案,那将非常有帮助:)

这是在这种情况下可能很重要的其余代码:

#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)

uipickerview ios

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

NSDate dateByAddingTimeInterval减去天数错误地更改时间

我错过了一些关于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.

iphone cocoa-touch objective-c nsdate ios

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