UITableView
有方法rectForRowAtIndexPath:
,但这在UICollectionView中不存在.我正在寻找一个很好的干净方法来获取一个单元格的边界矩形,也许我可以添加一个类别UICollectionView
.
我在iOS 4.1中使用新的ImageIO框架.我使用以下代码成功检索exif元数据:
CFDictionaryRef metadataDict = CMGetAttachment(sampleBuffer, kCGImagePropertyExifDictionary , NULL);
Run Code Online (Sandbox Code Playgroud)
阅读它,它似乎是有效的.保存图像有效,但图像中从不存在任何exif数据.
CGImageDestinationRef myImageDest = CGImageDestinationCreateWithURL((CFURLRef) docurl, kUTTypeJPEG, 1, NULL);
// Add the image to the destination using previously saved options.
CGImageDestinationAddImage(myImageDest, iref, NULL);
//add back exif
NSDictionary *props = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithFloat:.1], kCGImageDestinationLossyCompressionQuality,
metadataDict, kCGImagePropertyExifDictionary, //the exif metadata
nil];
//kCGImagePropertyExifAuxDictionary
CGImageDestinationSetProperties(myImageDest, (CFDictionaryRef) props);
// Finalize the image destination.
bool status = CGImageDestinationFinalize(myImageDest);
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用了GCD和performSelectorOnMainThread:waitUntilDone,并且倾向于认为它们是可互换的 - 也就是说,performSelectorOnMainThread:waitUntilDone是GCD C语法的Obj-C包装器.我一直在考虑这两个命令是等价的:
dispatch_sync(dispatch_get_main_queue(), ^{ [self doit:YES]; });
[self performSelectorOnMainThread:@selector(doit:) withObject:YES waitUntilDone:YES];
Run Code Online (Sandbox Code Playgroud)
我不对吗?也就是说,performSelector*命令与GCD命令有区别吗?我已经阅读了很多关于它们的文档,但还没有看到明确的答案.
iphone multithreading objective-c grand-central-dispatch ios
我有一些数据是在另一个更新UICollectionView标头的线程中获取的.但是,我没有找到一种重新加载补充视图(如页眉或页脚)的有效方法.
我可以打电话collectionView reloadSections:
,但这会重新加载整个部分,这是不必要的.collectionView reloadItemsAtIndexPaths:
似乎只针对细胞(不是补充观点).并且调用setNeedsDisplay
标题本身似乎也不起作用.我错过了什么吗?
我知道如何使用ALAssets保存元数据.但是,我想保存一个图像,或者将其上传到某处,exif完好无损.我有exif数据作为NSDictionary.但是如何将其正确地注入UIImage(或者可能是NSData JPEG表示)?
我不了解转化的东西.我想放大一下UIView的右上角(主视图).我使用CGAffineTransformScale
并试过设置center/anchorPoint以及CGAffineTransformMakeTranslation
无效.
我无法弄清楚如何正确设置翻译,以便放大这一点.
CGAffineTransform tr = CGAffineTransformScale(self.view.transform, 2, 2);
[UIView animateWithDuration:2.5 delay:0 options:0 animations:^{
self.view.transform = tr;
self.view.center = CGPointMake(480,0);
} completion:^(BOOL finished) {}];
Run Code Online (Sandbox Code Playgroud) 我正在使用UIBezierPath,但这个问题涉及路径的控制点,而不是绘图.给定一组点,我可以渲染一条路径.但是,我还没有弄清楚如何计算控制点以获得平滑的线条,就像在照片曲线编辑器中一样(如何在UIKit中实现Photoshop曲线编辑器).
我见过的最接近的答案是:如何在触摸时追踪手指的移动以绘制平滑的曲线?
但是,我仍然无法掌握正确的计算方法.在代码中总结一下:
for (int i = 0; i< points; i++)
{
...
[path addQuadCurveToPoint:nextPoint controlPoint:WTF];
}
Run Code Online (Sandbox Code Playgroud) 我理解分音效果背后的原理,并且喜欢使用单个rgb通道的色彩图或色调曲线.不幸的是,目前iOS不是一个选项,因为SDK不包含这些过滤器.
我提出的唯一的黑客攻击(除了通过opengl进行渲染)是复制图像,调整高光中的色调,另一个中的阴影,以及组合它们.但是,我更喜欢一种不需要双链复合操作的简单方法.
iOS 5中任何当前可用的核心图像过滤器链是否可以实现这种效果?
我希望在关闭应用程序之前清除视图,以更改启动图像,以便下次输入应用程序时,它不会显示某些不安全的数据.
iOS 4的提供applicationDidEnterBackground
和applicationWillResignActive
......然而,这些都不似乎能够防止屏幕截图被采取之前,我有机会以清除视图.
来自ActionScript,我会将Sprites设置为visible = false,以防止它们在布局等方面进行计算,并确保它们不会响应事件.
在iOS开发中,我继续这样做 - 如果不需要UIView,我可以将其alpha设置为零,然后设置hidden = true.我想知道自己是在浪费时间,还是知道这有什么好处.在我目前的项目中,我正在使用UIImageViews这样做,无论如何都没有响应事件.
将隐藏设置为真正的良好实践,还是仅仅是额外的开销?
ios ×8
iphone ×8
objective-c ×3
exif ×2
ios5 ×2
ios6 ×2
bezier ×1
core-image ×1
events ×1
ipad ×1
layout ×1
macos ×1
opengl-es ×1
uitableview ×1
uiview ×1