Tag: ios8

在iOS 8中更改UIBarButtonItems之间的间距

我有一个UINavigationItem在我的视图控制器 ,我试图减less我的两个RightBarButtonItems之间的间距。 这是我的一些代码: // Create two UIBarButtonItems let item1:UIBarButtonItem = UIBarButtonItem(customView: view1) let item2:UIBarButtonItem = UIBarButtonItem(customView: view2) var fixedSpace:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil) fixedSpace.width = -20.0 // Add the rightBarButtonItems on the navigation bar viewController.navigationItem.rightBarButtonItems = [item2, fixedSpace, item1] 可以看出,我正在使用FixedSpace UIBarButtonItem ,但由于某些原因,这不会改变间距。 我曾经想过子类UINavigationItem或UIBarButtonItem以便我可以相应地设置间距,但我似乎无法find任何方法,我可以重写以更改项目之间的间距。 任何有关如何解决这个问题的见解将不胜感激!

对从Swift中的Core Data收到的数组进行sorting

我有一个NSManagedObject我自己的类( BPMonitor )为我的实体 – BPMonitor : import UIKit import CoreData @objc(BPMonitor) class BPMonitor: NSManagedObject { @NSManaged var sisPress: String @NSManaged var diaPress: String @NSManaged var hbPress: String @NSManaged var datePress: NSDate } 在代码中,我从Core Data接收数据到数组: var results:[BPMonitor]=[] … … 我如何sorting我的数组字段datePress ( NSDate )降序?

在iOS中使用NSURLConnection按顺序下载文件

我想按顺序下载3个文件。 其中两个是txt文件,一个是.gz文件。 我正在使用NSURLConnection来下载上述文件。 我对iOS编程非常陌生。 我在SO和google的其他问题中已经看到,我们可以使用串行调度队列来进行一些串行操作。 但我不知道如何用NSURLConnection来做到这一点。 我在下面尝试,但没有工作。 dispatch_queue_t serialQueue = dispatch_queue_create("com.clc.PropQueue", DISPATCH_QUEUE_SERIAL); dispatch_async(serialQueue, ^{ [self downloadProp]; }); dispatch_async(serialQueue, ^{ [self downloadDatabase]; }); dispatch_async(serialQueue, ^{ [self downloadTxt]; }); 上面的代码不执行NSURLCOnnection的connectionDidFinishLoading。 任何人有想法如何实现这一目标?

iPhone6显示屏放大function扰乱了整个视野

我在iPhone6的“ 显示缩放”function上面临一个问题,因为在Xcode 6.1.1模拟器上没有显示缩放function来testing,只有标准显示。 问题: 当我在模拟器和iPhone6(使用标准显示器)上运行我的代码时,它的工作正常,但是当我在iPhone6上运行我的代码(显示缩放function时),那么我的整个视图会从原始位置干扰,甚至UIButton甚至不显示或隐藏在这种情况下。 以下是我的场景的两个图像: 在下面的图片(标准显示的iPhone 6),所有的视图是在原来的位置,一切都很好。 但是在下面的图像中(iPhone 6的显示缩放function是开启的),所有的视线都会从原来的位置被打扰,而大球周围的小球(UIButton)甚至被隐藏在这种情况下。 任何帮助和build议将不胜感激。

无法selectUIAlertController中button的顺序

我的印象是,如果正常的行为是一个破坏性的行为,另一个是在他们的UIAlertController取消行动,破坏性的应该在左边,取消应该在右边。 如果正常行为不具有破坏性,那么正常行为应该在右边,取消应该在左边。 这就是说,我有以下几点: var confirmLeaveAlert = UIAlertController(title: "Leave", message: "Are you sure you want to leave?", preferredStyle: .Alert) let leaveAction = UIAlertAction(title: "Leave", style: .Destructive, handler: { (alert: UIAlertAction!) in //Handle leave } ) let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil) confirmLeaveAlert.addAction(leaveAction) confirmLeaveAlert.addAction(cancelAction) self.presentViewController(confirmLeaveAlert, animated: true, completion: nil) 我的印象是,如果我先添加了leaveAction ,那么cancelAction就是左边的button。 此情况并非如此。 我尝试以相反的顺序添加button,也导致按相同顺序添加button。 我错了吗? […]

UIScrollView框架在iOS 8和iOS 7上是不同的大小

我实现了一个视图控制器,只显示一个图像,并允许用户捏放大/平移图​​像周围。 它在iOS 7上效果很好,但在iOS 8上,滚动视图的框架大小不同,最终结果是iPhone上的图像放大得太远,在iOS 8上运行时放大了太多。这是因为滚动视图框架的宽度是600pt,这是故事板(使用大小类的Universal Storyboard)中的大小。 但我有自动布局约束,应该确保滚动视图延伸填补可用空间 – 它应该是iPad上的768pt。 这是在iOS 7,但不是iOS 8的情况。 这是设置:在界面生成器中,我有一个UIViewController ,其中包含一个UIView ,其中包含一个UIScrollView与自动布局限制尾随,领先,底部和顶部空间的超级视图。 然后在viewDidLoad : UIImage *image = [UIImage imageNamed:@"image"]; self.imageView = [[UIImageView alloc] initWithImage:image]; self.imageView.contentMode = UIViewContentModeScaleAspectFit; self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height); [self.scrollView addSubview:self.imageView]; self.scrollView.contentSize = image.size; #warning Bug here – scroll view frame is 600pt on iOS 8 – should […]

使用照片框架将图像保存到照片库

每当我尝试使用照片框架保存图像时,我的应用程序崩溃。 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ _mChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[info valueForKey:UIImagePickerControllerOriginalImage]]; [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ _mChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[info valueForKey:UIImagePickerControllerOriginalImage]]; } completionHandler:^(BOOL success, NSError *error) { if (success) { PHObjectPlaceholder *assetPlaceholder = _mChangeRequest.placeholderForCreatedAsset; } else { NSLog(@"write error : %@",error); } }]; } crash : NSInternalInconsistencyException', reason: 'This method can only be called from inside of -[PHPhotoLibrary […]

UIButton不尊重Aspect在调整animation大小后填充contentMode

我使用自动布局。 以下是视图的初始状态。 在中心是一个包含在视图中的button。 该button具有contentMode Aspect Fill,并且图像被设置为button的背景图像。 然后,我使用下面的代码来转换视图,这将放大中心卡填充屏幕,并将图像移动到视图顶部: cardTrailingSpaceConstraint.constant = 0 cardLeadingSpaceConstraint.constant = 0 cardView.removeConstraint(cardAspectRatioConstraint) let cardHeightConstraint = NSLayoutConstraint(item: cardView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1.0, constant: 0) view.addConstraint(cardHeightConstraint) dishImageButton.removeConstraint(dishButtonBottomSpaceConstraint) let dishButtonHeightConstraint = NSLayoutConstraint(item: dishImageButton, attribute: .Height, relatedBy: .Equal, toItem: cardView, attribute: .Height, multiplier: 0.2, constant: 0) cardView.addConstraint(dishButtonHeightConstraint) cardView.setNeedsUpdateConstraints() UIView.animateWithDuration(0.7, delay: 0, […]

如何做布局来处理IOS 8中的自定义呈现视图控制器的通话(双高度)状态栏?

在iOS 7中,我能够处理自定义呈现的视图控制器的布局,通过添加约束条件来处理调用状态栏,其中呈现的视图控制器具有与呈现视图控制器相同的中心和相同的宽度和高度。 这是因为宽度和高度使用自动resize,否则,当通话状态栏消失时,出现的视图控制器将由于某种原因从顶部向下按20个点。 然而,在iOS 8中,这个技巧不再适用。 首先,我通过实验发现,呈现视图控制器似乎不一定在容器视图中,所以我不能将这些约束添加到容器视图。 ( “A Look Inside Presentation Controllers”2014 WWDCvideo的示例代码并没有将呈现视图控制器放在那里)。看起来,让呈现的视图控制器使用自动布局或自动resize来填充容器视图是可行的,但是我发现当通话状态栏消失时,容器视图本身可能会被压低20点(这在iOS 7中并不是这样)。 我一直在玩“内置演示控制器”示例代码 ,但即使这样的代码也不能正确处理通话状态栏。 ( UIPresentationController ,我仍然试图去处理新的UIPresentationController API。)

iOS 8 – 应用程序不能正常旋转

我有一个最初为iOS 7.1开发的应用程序,现在我正在通过Xcode 6.1在iPad上进行testing。 在运行7.1或7.1模拟器的iPad上运行时,应用程序按预期运行。 在8.1 iPad或8.1模拟器上,似乎旋转处理不当。 我看到顶部的状态栏旋转,但应用程序本身不会改变。 我知道这是相关的旋转方法在​​iOS 8被弃用。我的问题是…现在是什么? 我还没有find任何文档提供了一个简明的答案,如何处理旋转使用新的iOS 8机制。 有没有办法像我在iOS 7中处理它们一样正常处理iOS 8中的旋转? 我甚至没有看到旧的旋转方法被调用,所以看起来好像这不仅仅是一种典型的“贬低”。 似乎他们已经完全取消了对这些方法的呼叫。 任何帮助或build议?