小编bmu*_*ler的帖子

UIPanGestureRecognizer有时无法在iOS 7上运行

我收到iOS 7用户的间歇性报告,说UIPanGestureRecognizer每隔一段时间停止处理某些视图.他们应该能够向右/向左滑动视图,但它只是因为一些未知原因而中断并且不起作用.强制退出应用程序并重新启动它可以解决问题.

这个问题在iOS 6上从未发生过.除了gestureRecognizerShouldBegin委托强制手势只能识别水平平底锅之外,我没有任何代码可以随时禁用手势识别器:

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {

    if ([gestureRecognizer isMemberOfClass:[UIPanGestureRecognizer class]]) { 

        CGPoint translation = [gestureRecognizer translationInView:[self superview]];

        if (fabsf(translation.x) > fabsf(translation.y)) {

            if (translation.x > 0)
                return YES;
        }
    }
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

可能导致此问题的UIPanGestureRecognizer(或仅仅是平原UIGestureRecognizer)有什么变化吗?

uigesturerecognizer ios

9
推荐指数
1
解决办法
6356
查看次数

使用3.0 SDK获取Facebook个人资料照片

我无法使用新的Facebook SDK获取用户的个人资料照片.这里的所有答案都使用旧SDK中不再有效的方法.

我已经尝试过使用Facebook教程中推荐的FBProfilePictureView,但是这张图片没有被缓存,我认为它不能转换成UIImage.

有人可以提供一些帮助吗?谢谢!

iphone facebook ios

8
推荐指数
2
解决办法
9451
查看次数

AVSpeechSynthesizer在后台运行后停止工作

我正在使用AVSpeechSynthesizer单身人士.在iOS 8中,当应用程序被搁置一段时间后,当它恢复时,AVSpeechSynthesizer单身人士将不再说话.iOS 7上不会发生此问题.

当应用程序变为后台时,我的日志中会显示以下消息:

AVSpeechSynthesizer Audio interruption notification: {
    AVAudioSessionInterruptionTypeKey = 1;
}
Run Code Online (Sandbox Code Playgroud)

AVSpeechSynthesizer用singleton的init方法初始化了这个:

    self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
    self.speechSynthesizer.delegate = self;
Run Code Online (Sandbox Code Playgroud)

我说的utterance是这样的:

AVSpeechUtterance *utt = [[AVSpeechUtterance alloc] initWithString:dialogue];
utt.voice = [AVSpeechSynthesisVoice voiceWithLanguage:voice];

utt.pitchMultiplier = pitch;
utt.rate = rate;
utt.preUtteranceDelay = preDelay;
utt.postUtteranceDelay = postDelay;
utt.volume = volumeSetting;

[self.speechSynthesizer speakUtterance:utt];
Run Code Online (Sandbox Code Playgroud)

iOS 8上有没有人见过这样的东西?

ios avspeechsynthesizer ios8

7
推荐指数
1
解决办法
4995
查看次数

在iOS 7中,应用程序通知声音默认为关闭

从iOS 7开始,我的应用程序在通知中心的条目声音默认为某些用户关闭.由于我的应用程序是一个闹钟,并且需要一直使用UILocalNotifications,这显然是一个主要问题.有谁知道可能有什么变化导致这个问题?有什么办法可以解决它吗?

ios uilocalnotification ios7

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

UICollectionView 组合布局不会将水平项目滚动回开头

当我尝试刷新使用 iOS 13 新组合布局的 UICollectionView 中的数据时,我找不到使水平滚动部分滚动回起点的方法。

如果我在数据源上调用 applySnapshot,该部分的数据会刷新,但不会滚动回开头。如果我在每个部分上调用scrollToRowAtIndexPath,它将返回到第一行,但它会忽略该部分上的内容插图,这看起来不太好。

我尝试在应用真实快照之前应用一个空快照,这确实有效,但我间歇性地在 UICollectionCompositionalLayoutSolver 中崩溃,显示“无效部分 - null”。

那么在使用组合布局的集合视图上重置水平滚动的正确方法是什么?我确信我缺少一些东西。

uicollectionview ios13

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

将int转换为缩短的格式化字符串

用户将输入美元值作为int,我想将结果转换为缩短的格式化字符串.因此,如果用户输入1700,则该字符串将显示"$ 1.7k".如果用户输入32600000,则该字符串将显示"$ 32.6m".

更新

这是我到目前为止的代码.它似乎适用于数字~10k.我只想为更大的数字添加更多if语句.但有更有效的方法吗?

NSNumberFormatter *nformat = [[NSNumberFormatter alloc] init]; 
[nformat setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
[nformat setCurrencySymbol:@"$"]; 
[nformat setNumberStyle:NSNumberFormatterCurrencyStyle]; 
double doubleValue = 10200; 
NSString *stringValue = nil; 
NSArray *abbrevations = [NSArray arrayWithObjects:@"k", @"m", @"b", @"t", nil] ; 

for (NSString *s in abbrevations) 
{ 

    doubleValue /= 1000.0 ; 

    if ( doubleValue < 1000.0 ) 
    { 

        if ( (long long)doubleValue % (long long) 100 == 0 ) { 
            [nformat setMaximumFractionDigits:0]; 
        } else {                 
            [nformat setMaximumFractionDigits:2]; 
        } 

        stringValue = [NSString stringWithFormat: @"%@", [nformat …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c string-formatting

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

Parse.com从相关的PFObject获取PFUser

我将照片保存为Parse作为PFObject,并将[PFUser currentUser]用户ID作为其键之一.

我想在表格视图中显示照片以及PFUser的详细信息.但是当我试图让用户 - PFUser *user = [self.photo objectForKey:@"user"];然后尝试访问用户的显示名称时,我得到以下异常:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'Key "profilePicture" has no data.  Call fetchIfNeeded before getting 
its value.'
Run Code Online (Sandbox Code Playgroud)

但是,调用fetchIfNeeded会使表崩溃,并且AnyPic教程正是在我不使用fetchIfNeeded的情况下完成的.AnyPic只是打电话PFUser *user = [self.photo objectForKey:@"user"];,一切正常.

我在某处错过了一步吗?谢谢!

这是cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
    static NSString *CellIdentifier = @"Cell";

    PhotoCellTest *cell = (PhotoCellTest *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[PhotoCellTest alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier descriptionText:nil userNameText:nil captionText:nil];
    }

    photo = object; …
Run Code Online (Sandbox Code Playgroud)

iphone ios parse-platform

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

你在哪里打电话给Reachability?

我正在尝试在我的应用中实现Reachability.我有它applicationDidFinishLaunching.如果我的连接非常糟糕并且我启动了应用程序,则Reachability需要永远,并且经常会因The application failed to launch in time错误消息而崩溃应用程序.

所以相反,我尝试在后台线程中调用Reachability.但是当我这样做时,我不再收到Reachability通知.

我应该在哪里打电话给Reachability?

编辑:

我根据下面的建议添加了TonyMillions的Reachability代码,但是application failed to load in time在非常糟糕的网络条件下我仍然会遇到相同的错误.要重现我所看到的内容,请转到Settings.app - > Developer - > Network Link Conditioner,将其打开并将其设置为100%丢失.

您的应用仍然在这种情况下加载吗?

objective-c reachability ios

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

来自Springboard的重大延迟启动应用程序

当我点击我的应用程序图标启动它时,在应用程序实际从Springboard打开之前点击后需要0.5-1.0秒 - 换句话说,点击图标和跳板放大到应用程序的启动图像之间会有明显的延迟.我没有在设备上的任何其他应用程序(iPad 3)上看到这一点.这也发生在iPhone 4上,但不是iPhone 5.

除了第一次启动时发生这种情况,它还会在应用程序背景化时发生.

我经历过并确保没有任何昂贵的内容applicationDidFinishLaunchingappBecameActive- 我甚至尝试删除除了将视图控制器分配到UIWindow的根视图之外的所有内容.

有没有人见过这样的事情呢?关于如何修复它的任何想法?谢谢!

performance ios springboard

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

禁用/隐藏辅助功能元素

我试图从 VoiceOver 隐藏我的应用程序中的几个元素,以便屏幕阅读器不会大声朗读它们。在 iOS 上,我设置isAccessibilityElementNO,但这对 OSX 没有影响。从 VoiceOver 隐藏元素的正确方法是什么?

例如,我在视图中包含了一系列标签,如果它们被 VoiceOver 单独朗读,则这些标签毫无意义。我想accessibilityLabel在容器视图上设置来描述嵌套在其中的所有标签。但是如果我这样做,里面的标签仍然会被 VoiceOver 读出。

macos voiceover

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