在看文档时,我几乎看不出有什么大的差别。 “value”和“object”都是idtypes ,所以可以是任何对象。 密钥曾经是一个string,在另一种情况下是一个ID。 其中一个似乎保留了这个对象,另一个则没有。 还有什么? 哪一个是为了什么情况?
在过去的几个星期里,我一直在用objective-c处理图像,并注意到很多奇怪的行为。 首先,像其他许多人一样,我一直在使用相机拍摄的图像(或者将其他人的相机和彩信拍摄给我的图像)旋转90度。 我不知道为什么在这个世界上发生这个事情(因此我的问题 ),但我能够拿出一个便宜的工作。 这次我的问题是为什么会发生这种情况 ? 苹果为什么旋转图像? 当我用相机正确地拍摄照片时,除非我执行上面提到的代码,否则当我保存照片时,它会被保存为旋转状态。 现在,我的解决方法是好的,直到几天前。 我的应用程序修改了图像的各个像素,特别是PNG的alpha通道(因此,任何JPEG转换都会从我的场景的窗口中抛出)。 几天前,我注意到即使图像在我的应用程序中正确显示,这要归功于我的解决方法代码,当我的algorithm修改图像的各个像素时,它认为图像是旋转的。 所以不是修改图像顶部的像素,而是修改图像边上的像素(因为它认为它应该旋转)! 我无法弄清楚如何在内存中旋转图像 – 理想情况下,我宁愿只擦掉imageOrientation标志。 这里还有一些让我感到困惑的东西…当我拍照时, imageOrientation被设置为3.我的解决方法代码足够聪明,可以实现这一点,并将其翻转,以便用户不会注意到。 此外,我的代码保存到图书馆的图像意识到这一点,翻转它, 然后保存它,使其出现在相机胶卷适当。 该代码看起来像这样: NSData* pngdata = UIImagePNGRepresentation (self.workingImage); //PNG wrap UIImage* img = [self rotateImageAppropriately:[UIImage imageWithData:pngdata]]; UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil); 当我将这个新保存的图像加载到我的应用程序中时, imageOrientation为0 – 正是我想看到的,我的旋转解决方法甚至不需要运行(注意:从Internet上加载图像时,与使用相机, imageOrientation总是0,导致完美的行为)。 出于某种原因,我的保存代码似乎抹去了这个imageOrientation标志。 我希望只是偷了代码,并用它来擦除我的imageOrientation一旦用户拍摄照片,并将其添加到应用程序,但它似乎并不工作。 UIImageWriteToSavedPhotosAlbum是否使用UIImageWriteToSavedPhotosAlbum做了特别的imageOrientation ? 对于这个问题,最好的解决办法是在用户完成图像后立即吹走imageOrientation 。 我认为苹果有轮换行为是有原因的,对吧? 有less数人认为这是苹果的缺陷。 (…如果你还没有失去…注2:当我拍一张水平照片时,一切似乎都很完美,就像从互联网上拍摄的照片一样) 编辑: 以下是一些图像和场景实际上的样子。 根据迄今为止的评论,看起来这种奇怪的行为不仅仅是一种iPhone的行为,我认为这很好。 这是我用手机拍摄的照片的照片(注意正确的方向),当拍照时它看起来和我的手机一模一样: […]
我正在尝试添加一个新的应用程序ID来准备App Store提交,并在我提供的包ID下得到以下错误。 An App ID with Identifier 'com.domainName.AppName' is not available. Please enter a different string. 这是什么意思? 我试图添加一个全新的应用程序ID,当然它不存在。 我错过了什么? 我不记得上次创buildApp ID时遇到问题。
当显示键盘时,我想提出我的看法。 键盘(身高:216)应该推高我的看法,它的高度。 这是可能的一个简单的代码?
我想用一些带有2个可点击链接的文本来制作UILabel或者UITextView 。 没有链接到网页,但我想链接这样的行动,我会用UIButton做。 我所看到的所有例子都是网页浏览的链接,但我不想要。 同样,文本将被翻译成其他语言,所以职位必须是dynamic的。 想要做到这一点:
在Xcode 4.2中,在“常规”选项卡下有一个新的首选项,名称为“iOS设备发现”,其checkbox选项为“支持无线连接的设备”。 这个选项做什么? 一旦检查,我们如何使用这个新function?
我有一个UICollectionView的UICollectionView。 它会像大多数时间一样工作,但是现在,其中一个单元格不能正确包装。 例如,第三行第一个“列”中应该打开的单元格,如果实际上在第二行后面,并且只有一个空白空间(参见下图),那么该单元格应该位于第三行的第一个“列”中。 所有你能看到的这个胭脂细胞都是左边的(其余的被切除),它应该是空的。 这并不一致, 它并不总是相同的行。 一旦发生,我可以向上滚动,然后返回,单元格将自己修复。 或者,当我按下单元格(通过按压将我带到下一个视图)然后popup时,我会看到单元格位置不正确,然后跳转到正确的位置。 滚动速度似乎更容易重现问题。 当我慢慢地滚动时,我仍然可以不时地看到单元错误的位置,然后马上跳到正确的位置。 当我添加节插入时,问题就开始了。 以前,我的单元格几乎与收集边界齐平(很less或没有插入),我没有注意到这个问题。 但是这意味着收集视图的右侧和左侧是空的。 即,不能滚动。 另外,滚动条并不是在右边。 我可以在模拟器和iPad 3上发生问题。 我猜这个问题正在发生,因为左侧和右侧部分插入…但如果价值是错误的,那么我会期望行为是一致的。 我不知道这可能是苹果的错误吗? 或者,这可能是由于内嵌物或类似物的堆积造成的。 任何解决scheme/解决方法,赞赏。 跟进 :我已经在下面用尼克的这个答案超过6个月, 12个月,现在没有问题(如果人们想知道这个答案是否有漏洞 – 我还没有find任何问题)。 做得好尼克。
Apple开发者文档 (现在链接已经失效)解释说,如果您在网页中放置链接,然后在iPhone上使用Mobile Safari时单击该链接,则会启动与iPhone一样提供的Google地图应用程序。 我如何才能在自己的本地iPhone应用程序(即不通过Mobile Safari的网页)中启动具有特定地址的Google Maps应用程序,方法与点击联系人中地址启动地图的方式相同? 注意:这只适用于本设备。 不在模拟器中。
我正在尝试为iPhone构build一个input屏幕。 屏幕上有许多input字段。 他们大多数在屏幕的顶部,但两个领域是在底部。 当用户尝试编辑屏幕底部的文本时,键盘将popup,并将覆盖屏幕。 当发生这种情况时,我find了一个简单的解决scheme来移动屏幕,但结果是屏幕总是向上移动,而当用户尝试编辑这些屏幕时,屏幕顶部的字段不可用。 有没有办法让屏幕只在底部字段被编辑时才移动? 我使用了我在这里find的这个代码: override func viewDidLoad() { super.viewDidLoad() NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil); NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil); } func keyboardWillShow(sender: NSNotification) { self.view.frame.origin.y -= 150 } func keyboardWillHide(sender: NSNotification) { self.view.frame.origin.y += 150 }
有没有一种方法来确定某个method被调用的代码行?