小编Vil*_*urz的帖子

如何获得UILabel(UITextView)自动调整字体大小?

自动调整后是否可以获得最终字体大小?(属性adjustsFontSizeToFitWidth设置为YES,文本字体大小正在缩小以适合标签)

我在UILabel中继承了drawTextInRect以在文本上放置渐变,但是渐变大小需要与字体的大小相同.我无法获得适当大小的调整字体......它甚至可能吗?

  //draw gradient

    CGContextSaveGState(myContext);
        CGGradientRef glossGradient;
        CGColorSpaceRef rgbColorspace;
        size_t num_locations = 2;
        CGFloat locations[2] = { 0.0, 1.0 };
        CGFloat components[8] = { 1, 1, 1, 0.25,  // BOTTOM color
            1, 1, 1, 0.12 }; // UPPER color

    //scale and translate so that text would not be rotated 180 deg wrong
        CGContextTranslateCTM(myContext, 0, rect.size.height);
        CGContextScaleCTM(myContext, 1.0, -1.0);

//create mask
        CGImageRef alphaMask = CGBitmapContextCreateImage(myContext);
        CGContextClipToMask(myContext, rect, alphaMask);

        rgbColorspace = CGColorSpaceCreateDeviceRGB();
        glossGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations);

    //gradient should be sized …
Run Code Online (Sandbox Code Playgroud)

iphone

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

__attribute __((不建议使用))不适用于objective-c协议方法?

我需要弃用objective-c协议中的单个方法.在正常的类/实例方法上,我__attribute__ ((deprecated));在声明后添加.

似乎它不适用于协议方法.如果我将它们标记为已弃用并在某处使用它们,则项目编译正常,没有预期的弃用警告.

这是Apple LLVM 3.1中的一个缺陷,还是我做错了什么?

xcode objective-c llvm clang ios

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

TestFlight预发布测试版应用程序版本会更新现有App Store版本,还是在测试仪设备上安装该应用程序的另一个实例?

我们将向外部用户提交应用程序的预发布版本,但我想知道:他们的体验是什么?

  1. 用户在设备上有应用程序的生产App Store版本,现在通过TestFlight安装新的测试版.这将是就地更新,保留数据,还是数据擦除的全新安装,或者TestFlight的版本是否会在生产旁边安装 - 以便用户拥有应用程序两次?

  2. 测试结束,生产就绪版本提交到App Store.测试人员是否能够无缝地(就地)更新到新的App Store版本,并保留测试版的数据?还是完全擦拭?或者beta会留在他的设备上,他必须从头开始下载新的完整版本?

顺便说一句,我已经提交了另一个关于版本编号beta与生产的问题.

itunesconnect ios testflight

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

预定UILocalNotifications是iOS设备备份的一部分吗?

我的意思是,我们的应用安排了几个本地通知.用户备份系统并在新设备上恢复它.以前安排的本地通知是否会在新系统上启动,或者我们是否需要在新系统上重新安排它们?

iphone cocoa-touch ios uilocalnotification

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

如何在xcode 4中每次构建(运行)ios app之前自动运行OCUnit逻辑测试?

看来,我已将所有设置都设置正确.当我运行命令-u(或从菜单中选择产品 - 测试)测试运行正常.

最佳实践应该是,测试应该尽可能频繁地运行,理想情况是在每次构建期间(在每次运行期间理解).

如何强制XCode 4这样做?我试过:

  • 设置目标依赖项(将主应用程序目标设置为依赖于测试目标)
  • 在主应用目标构建设置中启用"构建后测试"
  • 勾选方案编辑器中的测试目标,用于运行主应用程序方案

但似乎没什么用.有没有人成功设置这个?

ocunit ios xcode4

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

如何调用scrollViewDidScroll:与UIScrollView相同,但在自定义动画期间?

我有一个非常大的水平滚动UIScrollView,它重用它的子视图(当它们超出可见区域时移动和更新它们,类似于UITableView重用单元格).这依赖于scrollViewDidScroll:委托调用,它给了我实际的contentOffset,在这里我决定何时重用特定的子视图.到现在为止还挺好.

有时我需要以编程方式更改contentOffset,但需要使用自定义动画(惯性并弹回到最终位置).我可以使用核心动画很容易地做到这一点.

问题是,在自定义动画期间,不调用scrollViewDidScroll:delegate方法 - >我必须手动执行,以便重用子视图.我试着用定时器每次发射0.02秒来调用它.现在有两个问题:

  1. 我必须使用[[_scrollView.layer presentationLayer] bounds] .origin.x获取UIScrollView contentOffset,因为在动画期间,正常的_scrollView.contentOffset不会改变.

    但是,来自presentationLayer的信息不足以进行精确同步 - 有时候会有点迟.

  2. 问题是当新的contentOffset远离当前位置时.看起来内置的UIScrollView动画是CAKeyframeAnimation,而scrollViewDidScroll应该在关键帧位置上调用.但我无法得到这些.

    如果我依赖于与关键帧同步的计时器,则会在错误的位置重复使用视图,并且在动画期间我根本看不到它们.

任何人都可以了解在setContentOffset期间UIScrollView如何以及何时调用scrollViewDidScroll:X animated:YES?是否可以在不破坏appstore规则的情况下重现它?

cocoa-touch core-animation uiscrollview cakeyframeanimation ios

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

如何在Swift中比较两个可选的NSArrays

我们有两个可选的NSArrays.目标是检查它们是否相等.我的解决方案是

func isArrayEqualToArray(array1:NSArray?, array2:NSArray?) -> Bool {

    let areBothEmpty:Bool = array1 == nil && array2 == nil

    var areBothEqual:Bool
    if !areBothEmpty && array2 != nil {
        areBothEqual = array1?.isEqualToArray(array2!) ?? false
    } else {
        areBothEqual = false
    }

    let result = areBothEqual || areBothEmpty
    return result
}
Run Code Online (Sandbox Code Playgroud)

我觉得它有点过于冗长.它应该以更简洁和可读的方式实现.有没有人有更好的解决方案?

cocoa cocoa-touch swift

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