自动调整后是否可以获得最终字体大小?(属性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) 我需要弃用objective-c协议中的单个方法.在正常的类/实例方法上,我__attribute__ ((deprecated));
在声明后添加.
似乎它不适用于协议方法.如果我将它们标记为已弃用并在某处使用它们,则项目编译正常,没有预期的弃用警告.
这是Apple LLVM 3.1中的一个缺陷,还是我做错了什么?
我们将向外部用户提交应用程序的预发布版本,但我想知道:他们的体验是什么?
用户在设备上有应用程序的生产App Store版本,现在通过TestFlight安装新的测试版.这将是就地更新,保留数据,还是数据擦除的全新安装,或者TestFlight的版本是否会在生产旁边安装 - 以便用户拥有应用程序两次?
测试结束,生产就绪版本提交到App Store.测试人员是否能够无缝地(就地)更新到新的App Store版本,并保留测试版的数据?还是完全擦拭?或者beta会留在他的设备上,他必须从头开始下载新的完整版本?
顺便说一句,我已经提交了另一个关于版本编号beta与生产的问题.
我的意思是,我们的应用安排了几个本地通知.用户备份系统并在新设备上恢复它.以前安排的本地通知是否会在新系统上启动,或者我们是否需要在新系统上重新安排它们?
看来,我已将所有设置都设置正确.当我运行命令-u(或从菜单中选择产品 - 测试)测试运行正常.
最佳实践应该是,测试应该尽可能频繁地运行,理想情况是在每次构建期间(在每次运行期间理解).
如何强制XCode 4这样做?我试过:
但似乎没什么用.有没有人成功设置这个?
我有一个非常大的水平滚动UIScrollView,它重用它的子视图(当它们超出可见区域时移动和更新它们,类似于UITableView重用单元格).这依赖于scrollViewDidScroll:委托调用,它给了我实际的contentOffset,在这里我决定何时重用特定的子视图.到现在为止还挺好.
有时我需要以编程方式更改contentOffset,但需要使用自定义动画(惯性并弹回到最终位置).我可以使用核心动画很容易地做到这一点.
问题是,在自定义动画期间,不调用scrollViewDidScroll:delegate方法 - >我必须手动执行,以便重用子视图.我试着用定时器每次发射0.02秒来调用它.现在有两个问题:
我必须使用[[_scrollView.layer presentationLayer] bounds] .origin.x获取UIScrollView contentOffset,因为在动画期间,正常的_scrollView.contentOffset不会改变.
但是,来自presentationLayer的信息不足以进行精确同步 - 有时候会有点迟.
问题是当新的contentOffset远离当前位置时.看起来内置的UIScrollView动画是CAKeyframeAnimation,而scrollViewDidScroll应该在关键帧位置上调用.但我无法得到这些.
如果我依赖于未与关键帧同步的计时器,则会在错误的位置重复使用视图,并且在动画期间我根本看不到它们.
任何人都可以了解在setContentOffset期间UIScrollView如何以及何时调用scrollViewDidScroll:X animated:YES?是否可以在不破坏appstore规则的情况下重现它?
cocoa-touch core-animation uiscrollview cakeyframeanimation ios
我们有两个可选的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)
我觉得它有点过于冗长.它应该以更简洁和可读的方式实现.有没有人有更好的解决方案?
ios ×5
cocoa-touch ×3
iphone ×2
clang ×1
cocoa ×1
llvm ×1
objective-c ×1
ocunit ×1
swift ×1
testflight ×1
uiscrollview ×1
xcode ×1
xcode4 ×1