我有UICollectionView
一个FLowLayout.它会像我期望的那样工作,但是偶尔会有一个单元格无法正确包装.例如,如果实际上在第二行中尾随,则应该在第三行的第一个"列"中打开的单元格,并且它应该是一个空的空间(参见下图).所有你能看到的这个胭脂细胞是左手边(其余的被切掉),它应该是空的.
这不会持续发生; 它并不总是同一行.一旦它发生了,我可以向上滚动然后再回来,单元格将自行修复.或者,当我按下单元格(通过按钮将我带到下一个视图)然后弹回时,我将看到单元格位于错误的位置,然后它将跳转到正确的位置.
滚动速度似乎可以更容易地重现问题.当我慢慢滚动时,我仍然可以偶尔看到单元格处于错误的位置,但是它会立即跳到正确的位置.
当我添加插件插件时,问题就开始了.以前,我的细胞几乎与集合边界齐平(很少或没有插入),我没有注意到这个问题.但这意味着集合视图的右侧和左侧是空的.即,无法滚动.此外,滚动条没有向右冲洗.
我可以在模拟器和iPad 3上解决问题.
我猜这个问题正在发生,因为左右部分插入...但如果值是错误的,那么我希望行为是一致的.我想知道这可能是Apple的错误吗?或许这可能是由于插入物的堆积或类似的东西.
跟进:我一直在使用尼克的这个答案超过2年,现在没有问题(如果人们想知道答案中是否有任何漏洞 - 我还没有找到任何漏洞).做得好尼克.
我知道如何设置按钮与IB的垂直对齐方式; 看到这里.但我不能以编程方式做到这一点......这是我尝试过的事情之一:
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 110, 130)];
[button setTitle:@"Align" forState:UIControlStateNormal];
button.backgroundColor = [UIColor whiteColor];
button.titleLabel.textColor = [UIColor grayColor];
[button setContentVerticalAlignment:UIControlContentVerticalAlignmentBottom];
[self.view addSubview:button];
[button release];
Run Code Online (Sandbox Code Playgroud)
我也尝试了插图......
但是对齐不会改变.
请注意,我想保留按钮的CustomStyle(我不想要默认的外观).
我已经想出了如何阻止iOS设备进入睡眠状态(见下文),但是我在修复设置方面遇到了麻烦.根据Apple文档,它应该只是改变idleTimerDisabled
财产的价值.但是当我测试它时,它不起作用.
这就是我最初阻止设备进入睡眠的方式:
//need to switch off and on for it to work initially
[UIApplication sharedApplication].idleTimerDisabled = NO;
[UIApplication sharedApplication].idleTimerDisabled = YES;
Run Code Online (Sandbox Code Playgroud)
我原以为会有以下几种方法:
[UIApplication sharedApplication].idleTimerDisabled = NO;
Run Code Online (Sandbox Code Playgroud)
来自Apple文档:
此属性的默认值为NO.当大多数应用程序在短时间内没有作为用户输入的触摸时,系统将设备置于屏幕变暗的"睡眠"状态.这样做是为了节省电力.但是,没有用户输入的应用程序除了加速计 - 游戏,例如-can,通过将此属性设置为YES,禁用"空闲计时器"以避免系统睡眠.
重要提示:您应该仅在必要时设置此属性,并且当需要不再存在时,应确保将其重置为NO.大多数应用程序应在闲置计时器结束时让系统关闭屏幕.这包括音频应用程序.通过适当使用音频会话服务,当屏幕关闭时,播放和录制不会中断.应该禁用空闲计时器的唯一应用程序是通过零星的用户交互来映射应用程序,游戏或类似程序.
有人遇到过这个问题吗?我在iOS6和iOS5上测试.提前致谢.
Objective-c/cocoa(OSX)中是否有任何方法可以在不改变图像质量的情况下裁剪图像?
我非常接近解决方案,但仍然存在一些我可以在颜色中检测到的差异.放大文字时我会注意到它.这是我目前使用的代码:
NSImage *target = [[[NSImage alloc]initWithSize:panelRect.size] autorelease];
target.backgroundColor = [NSColor greenColor];
//start drawing on target
[target lockFocus];
[NSGraphicsContext saveGraphicsState];
[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationNone];
[[NSGraphicsContext currentContext] setShouldAntialias:NO];
//draw the portion of the source image on target image
[source drawInRect:NSMakeRect(0,0,panelRect.size.width,panelRect.size.height)
fromRect:NSMakeRect(panelRect.origin.x , source.size.height - panelRect.origin.y - panelRect.size.height, panelRect.size.width, panelRect.size.height)
operation:NSCompositeCopy
fraction:1.0];
[NSGraphicsContext restoreGraphicsState];
//end drawing
[target unlockFocus];
//create a NSBitmapImageRep
NSBitmapImageRep *bmpImageRep = [[[NSBitmapImageRep alloc]initWithData:[target TIFFRepresentation]] autorelease];
//add the NSBitmapImage to the representation list of the target
[target addRepresentation:bmpImageRep];
//get the data …
Run Code Online (Sandbox Code Playgroud) 我的UIViewController
故事板上有一个"产品详细信息" ,它有一个UIWebView
显示"富文本"(基本上是粗体和斜体).使用字符串(从中获取CoreData
)加载Web视图loadHTMLString
.问题是第一次显示视图时,在呈现Web视图之前至少有一秒的延迟.进一步加载"产品详细信息"视图加载所有加载正常.它只是第一个"产品详细信息"Web视图,需要花时间加载.
这就是我的尝试(没有喜悦)
UIWebView
在第一个屏幕上显示带文本(以预热UIWebView)init
的Web视图prepare for segue
并将其传递给"产品详细信息"视图控制器.如果其他人有这个问题以及他们如何克服它/解决它,我会非常感兴趣.我觉得很奇怪,我在SO上找不到很多类似的问题; 我一定做些蠢事......
注意,我使用的是UIWebView,因此我可以显示富文本.我知道我可以使用其他控件显示富文本,但是使我想要显示的文本的程序只能使用HTML导出富文本.
我一直致力于在非常大的图像上执行动画的iPad应用程序(全屏图像可以放大2倍,仍然是视网膜质量).在缩放和平移时,我花了很多时间来获得平滑过渡.iOS7
然而,当运行应用程序时,动画变得非常生涩(帧速率慢).
进一步测试表明,导致问题的是缩放动画(平移不会导致问题).有趣的是,我已经能够通过设置alpha
缩放的图像0.995
(而不是1.0
)来修复它.
iOS7
为实现这一目标已经发生了什么变化?有关上述问题的进一步信息:
动画都是预先定义的,并在用户交互时播放.动画都是平移和缩放的混合.动画非常简单:
[UIView animateWithDuration:animationDuration delay:animationDelay options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.frame = nextFrame;
//...
} completion:^(BOOL finished) {
//...
}];
Run Code Online (Sandbox Code Playgroud)
为了修复生涩的动画,我alpha
在动画之前设置了
self.alpha = 0.99;
Run Code Online (Sandbox Code Playgroud)
一些有趣的观点:
alpha
动画的内部也是有效的alpha
背面设置为1.0
动画之后,然后使用1.0 alpha进行反向动画不会提供平滑的反向动画.我之前使用不透明度修正来在缩放和平移多个图像时使动画变得平滑.例如,我有两个大图像以不同的速度平移和缩放,一个在另一个上面.当较低图像的先前未渲染的部分(底部的图像)变得可见时,动画将变得不稳定(平移和缩放).我想为什么alpha
在这种情况下有帮助,如果顶部图像有一点透明度,底部图像必须始终被渲染,这意味着它可以在动画发生之前被缓存.这种想法得到了反向动画的支持而没有看到生涩的动画.(我想我很想知道是否有人对此有不同的看法).
说了上面的话,我不知道当只有一张图像时这会产生什么影响(就像我在我的问题中描述的情况一样).特别是在获得生涩动画后,反向动画仍然是生涩的.这两种情况之间的另一个不同点是它只是缩放导致当前问题的问题,而在双重图像问题中它是平移和缩放.
我希望上述内容很明确 - 任何见解都会受到赞赏.
我有一些 Objective-C [i-os] 代码,我想使用 XCode 运行单元测试。它根据设备类型访问不同的元数据,使用:
[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad
我遇到的问题是,当我运行单元测试时,这个结果总是正确的。理想情况下,如果能够在测试运行时对其进行设置,那就太好了。
我猜想可以做到的方法是创建一个类来封装设备检查并模拟测试。但我认为是否有更好的解决方案可能值得一看。
作为参考,有一篇不错的博客文章,其中包含许多链接、Apple单元测试指南和单元测试示例代码项目。
我正在查看Apple的ZoomingPDFViewer示例(来自链接的源代码).当它运行时,它会给出这个错误:
ZoomingPDFViewer[5751] <Error>: KSTFBB+Helvetica: FT_Load_Glyph failed: error 133.
Run Code Online (Sandbox Code Playgroud)
它发生在行100
的ZoomingPDFViewer
:
CGContextDrawPDFPage(context, page);
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么会这样,以及如何解决它?
ios ×6
objective-c ×3
ios6 ×2
cgpdf ×1
cocoa ×1
cocoa-touch ×1
crop ×1
ios7 ×1
ipad ×1
java ×1
macos ×1
nsimage ×1
octest ×1
storyboard ×1
uibutton ×1
uiwebview ×1
unit-testing ×1
xcode ×1