我收到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)有什么变化吗?
我无法使用新的Facebook SDK获取用户的个人资料照片.这里的所有答案都使用旧SDK中不再有效的方法.
我已经尝试过使用Facebook教程中推荐的FBProfilePictureView,但是这张图片没有被缓存,我认为它不能转换成UIImage.
有人可以提供一些帮助吗?谢谢!
我正在使用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 7开始,我的应用程序在通知中心的条目声音默认为某些用户关闭.由于我的应用程序是一个闹钟,并且需要一直使用UILocalNotifications,这显然是一个主要问题.有谁知道可能有什么变化导致这个问题?有什么办法可以解决它吗?
当我尝试刷新使用 iOS 13 新组合布局的 UICollectionView 中的数据时,我找不到使水平滚动部分滚动回起点的方法。
如果我在数据源上调用 applySnapshot,该部分的数据会刷新,但不会滚动回开头。如果我在每个部分上调用scrollToRowAtIndexPath,它将返回到第一行,但它会忽略该部分上的内容插图,这看起来不太好。
我尝试在应用真实快照之前应用一个空快照,这确实有效,但我间歇性地在 UICollectionCompositionalLayoutSolver 中崩溃,显示“无效部分 - null”。
那么在使用组合布局的集合视图上重置水平滚动的正确方法是什么?我确信我缺少一些东西。
用户将输入美元值作为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) 我将照片保存为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) 我正在尝试在我的应用中实现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%丢失.
您的应用仍然在这种情况下加载吗?
当我点击我的应用程序图标启动它时,在应用程序实际从Springboard打开之前点击后需要0.5-1.0秒 - 换句话说,点击图标和跳板放大到应用程序的启动图像之间会有明显的延迟.我没有在设备上的任何其他应用程序(iPad 3)上看到这一点.这也发生在iPhone 4上,但不是iPhone 5.
除了第一次启动时发生这种情况,它还会在应用程序背景化时发生.
我经历过并确保没有任何昂贵的内容applicationDidFinishLaunching或appBecameActive- 我甚至尝试删除除了将视图控制器分配到UIWindow的根视图之外的所有内容.
有没有人见过这样的事情呢?关于如何修复它的任何想法?谢谢!
我试图从 VoiceOver 隐藏我的应用程序中的几个元素,以便屏幕阅读器不会大声朗读它们。在 iOS 上,我设置isAccessibilityElement为NO,但这对 OSX 没有影响。从 VoiceOver 隐藏元素的正确方法是什么?
例如,我在视图中包含了一系列标签,如果它们被 VoiceOver 单独朗读,则这些标签毫无意义。我想accessibilityLabel在容器视图上设置来描述嵌套在其中的所有标签。但是如果我这样做,里面的标签仍然会被 VoiceOver 读出。
ios ×7
iphone ×2
objective-c ×2
cocoa-touch ×1
facebook ×1
ios13 ×1
ios7 ×1
ios8 ×1
macos ×1
performance ×1
reachability ×1
springboard ×1
voiceover ×1