小编lin*_*fox的帖子

UICollectionView flowLayout没有正确包装单元格

我有UICollectionView一个FLowLayout.它会像我期望的那样工作,但是偶尔会有一个单元格无法正确包装.例如,如果实际上在第二行中尾随,则应该在第三行的第一个"列"中打开的单元格,并且它应该是一个空的空间(参见下图).所有你能看到的这个胭脂细胞是左手边(其余的被切掉),它应该是空的.

这不会持续发生; 它并不总是同一行.一旦它发生了,我可以向上滚动然后再回来,单元格将自行修复.或者,当我按下单元格(通过按钮将我带到下一个视图)然后弹回时,我将看到单元格位于错误的位置,然后它将跳转到正确的位置.

滚动速度似乎可以更容易地重现问题.当我慢慢滚动时,我仍然可以偶尔看到单元格处于错误的位置,但是它会立即跳到正确的位置.

当我添加插件插件时,问题就开始了.以前,我的细胞几乎与集合边界齐平(很少或没有插入),我没有注意到这个问题.但这意味着集合视图的右侧和左侧是空的.即,无法滚动.此外,滚动条没有向右冲洗.

我可以在模拟器和iPad 3上解决问题.

我猜这个问题正在发生,因为左右部分插入...但如果值是错误的,那么我希望行为是一致的.我想知道这可能是Apple的错误吗?或许这可能是由于插入物的堆积或类似的东西.

问题和设置的例证


跟进:我一直在使用尼克的这个答案超过2年,现在没有问题(如果人们想知道答案中是否有任何漏洞 - 我还没有找到任何漏洞).做得好尼克.

ios ios6 uicollectionview uicollectionviewcell

77
推荐指数
5
解决办法
4万
查看次数

如何以编程方式设置UIButton的垂直对齐方式 - iOS

我知道如何设置按钮与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(我不想要默认的外观).

cocoa-touch uibutton ios

20
推荐指数
3
解决办法
3万
查看次数

如何在禁用ios时重新启用空闲计时器(允许显示再次进入睡眠状态)?

我已经想出了如何阻止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上测试.提前致谢.

uiapplication ios

8
推荐指数
1
解决办法
3010
查看次数

如何在Objective-c/Cocoa(OSX)中制作完美的作物(不改变质量)

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)

macos cocoa crop objective-c nsimage

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

UIWebView第一次在特定的UIViewController中显示时加载速度非常慢

我的UIViewController故事板上有一个"产品详细信息" ,它有一个UIWebView显示"富文本"(基本上是粗体和斜体).使用字符串(从中获取CoreData)加载Web视图loadHTMLString.问题是第一次显示视图时,在呈现Web视图之前至少有一秒的延迟.进一步加载"产品详细信息"视图加载所有加载正常.它只是第一个"产品详细信息"Web视图,需要花时间加载.

这就是我的尝试(没有喜悦)

  1. UIWebView在第一个屏幕上显示带文本(以预热UIWebView)
  2. 到了显示详细信息视图的时候,方法中init的Web视图prepare for segue并将其传递给"产品详细信息"视图控制器.
  3. 我已经尝试了在故事板中具有Web视图/不在故事板/滚动视图等中的各种组合

如果其他人有这个问题以及他们如何克服它/解决它,我会非常感兴趣.我觉得很奇怪,我在SO上找不到很多类似的问题; 我一定做些蠢事......


注意,我使用的是UIWebView,因此我可以显示富文本.我知道我可以使用其他控件显示富文本,但是使我想要显示的文本的程序只能使用HTML导出富文本.

objective-c storyboard uiwebview ios

7
推荐指数
2
解决办法
4990
查看次数

寻求iOS6和iOS7之间动画性能差异的解释

我一直致力于在非常大的图像上执行动画的iPad应用程序(全屏图像可以放大2倍,仍然是视网膜质量).在缩放和平移时,我花了很多时间来获得平滑过渡.iOS7然而,当运行应用程序时,动画变得非常生涩(帧速率慢).

进一步测试表明,导致问题的是缩放动画(平移不会导致问题).有趣的是,我已经能够通过设置alpha缩放的图像0.995(而不是1.0)来修复它.

我有两个问题

  1. iOS7为实现这一目标已经发生了什么变化?
  2. 为什么更改视图的不透明度会有所不同?

有关上述问题的进一步信息:

动画设置

动画都是预先定义的,并在用户交互时播放.动画都是平移和缩放的混合.动画非常简单:

[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)

一些有趣的观点:

  1. 设置alpha动画的内部也是有效的
  2. alpha背面设置为1.0动画之后,然后使用1.0 alpha进行反向动画不会提供平滑的反向动画.

不透明度修复

我之前使用不透明度修正来在缩放和平移多个图像时使动画变得平滑.例如,我有两个大图像以不同的速度平移和缩放,一个在另一个上面.当较低图像的先前未渲染的部分(底部的图像)变得可见时,动画将变得不稳定(平移和缩放).我想为什么alpha在这种情况下有帮助,如果顶部图像有一点透明度,底部图像必须始终被渲染,这意味着它可以在动画发生之前被缓存.这种想法得到了反向动画的支持而没有看到生涩的动画.(我想我很想知道是否有人对此有不同的看法).

说了上面的话,我不知道当只有一张图像时这会产生什么影响(就像我在我的问题中描述的情况一样).特别是在获得生涩动画后,反向动画仍然是生涩的.这两种情况之间的另一个不同点是它只是缩放导致当前问题的问题,而在双重图像问题中它是平移缩放.


我希望上述内容很明确 - 任何见解都会受到赞赏.

core-animation objective-c ipad ios6 ios7

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

如何测试依赖于 UIUserInterfaceIdiom (ios) 的代码

我有一些 Objective-C [i-os] 代码,我想使用 XCode 运行单元测试。它根据设备类型访问不同的元数据,使用:

[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad

我遇到的问题是,当我运行单元测试时,这个结果总是正确的。理想情况下,如果能够在测试运行时对其进行设置,那就太好了。

我猜想可以做到的方法是创建一个类来封装设备检查并模拟测试。但我认为是否有更好的解决方案可能值得一看。

作为参考,有一篇不错的博客文章,其中包含许多链接、Apple单元测试指南单元测试示例代码项目

xcode unit-testing octest ios

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

来自CGContextDrawPDFPage <错误>的Apple的"ZoomingPDFViewer"代码示例中出现此错误:KSTFBB + Helvetica:FT_Load_Glyph失败:错误133

我正在查看Apple的ZoomingPDFViewer示例(来自链接的源代码).当它运行时,它会给出这个错误:

 ZoomingPDFViewer[5751] <Error>: KSTFBB+Helvetica: FT_Load_Glyph failed: error 133.
Run Code Online (Sandbox Code Playgroud)

它发生在行100ZoomingPDFViewer:

CGContextDrawPDFPage(context, page);
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么会这样,以及如何解决它?

ios cgpdf

4
推荐指数
1
解决办法
1193
查看次数

我能否得到一个关于"债券类"的具体例子(来自反if-campain网站)?

有一个网站(称为Anti-if活动),讨论如何用更易维护的东西替换大嵌套的if语句(通过使用'bond class'参见示例).我理解这个概念,但我不知道如何实现它(即使是这个例子).

问题: 我可以得到一个如何实现这个的具体例子(即债券类)? - 它一直困扰着我一段时间.Java是我的偏好,但欢迎任何例子.

note注意 我在堆栈溢出发现多了一个文章就此这里

java design-patterns

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