我正在制作一个 tvOS 应用程序,我希望它看起来与电影应用程序相似。因此我有一个 UICollectionView。现在我的单元格不仅仅是简单的 UIImageView,而是更复杂一些。
我仍然想要漂亮的焦点视觉效果(使单元格图像更大,并在用户滑动 Remote 时在其上产生光效)。所以我想做的是渲染我的单元格,然后拍摄它的快照,然后显示这个快照而不是单元格本身。我是这样做的:
extension UIView {
var snapshot : UIImage {
UIGraphicsBeginImageContextWithOptions(bounds.size, true, 0.0)
drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}
...
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = NSBundle.mainBundle().loadNibNamed("ContentCell", owner: self, options: nil)[0] as! ContentCell
cell.update()
let cellSnapshot = cell.snapshot
let snapshotCell = collectionView.dequeueReusableCellWithReuseIdentifier("SnapshotCell", forIndexPath: indexPath) as! SnapshotCell
snapshotCell.snapshotImageView.image = cellSnapshot
return snapshotCell
}
然而,这一切只是显示一个黑色单元格。有什么想法我可能做错了吗?
最佳答案
你应该看看here
在 Swift 中它会是这样的:
extension UIView {
var snapshot : UIImage? {
var image: UIImage? = nil
UIGraphicsBeginImageContext(bounds.size)
if let context = UIGraphicsGetCurrentContext() {
self.layer.renderInContext(context)
image = UIGraphicsGetImageFromCurrentImageContext()
}
UIGraphicsEndImageContext()
return image
}
}
关于swift - 拍摄 UICollectionViewCell 的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33388116/
我正在使用firebase的foreach从这个url中获取树中的每个child目标,当页面加载时从firebase中随机获取一个项目并显示它数据结构grabbit(tablename)active(foractiveitemsforsale)category(thecategoryoftheitemiewomensClothes,MensShoesetc)uniqueidoftheitem在页面加载时进入http://gamerholic.firebase.com/grabbit/active并捕获任何一个类别并将其返回..脚本vargrabbitRef=newFirebase('h
我正在研究使用多段线拍摄谷歌地图快照的功能,并在谷歌地图上点击多段线打开弹出窗口。带有折线的谷歌地图快照正在运行但它无法在折线上拍摄快照打开弹出窗口。折线显示在快照图片上,但信息窗口未显示。这是拍摄快照的代码。这段代码是初始化javascriptonload上的代码控件:varsnapShotControlOptions={hidden:true};snapShotControlOptions.buttonLabelHtml="snap"snapShotControl=newSnapShotControl(snapShotControlOptions);map.addControl(s
我们在公司中使用ESLint来检测错误,这些错误会破坏构建并阻止部署,但我们还有一些其他规则会在我们的控制台中触发一些警告。我们希望在时间轴上看到这些警告,这样我们就能够检查我们是否正在改善我们的技术债务。我试过了SonarEsLintPlugin在SonarQube中,但它在版本7+中无法正常工作有谁知道其他获取ESLint时间线快照的方法吗? 最佳答案 可以使用官方SonarJSplugin来自Sonar源。在最新的4.2版本中它支持ESLint问题的导入,参见documentationhere.它将允许跟踪您的技术债务,您还可
我正在尝试拍摄由在谷歌地图上绘制的矩形包围的区域的快照。是否可以拍摄矩形下方区域的快照?我搜索了答案,但找不到任何有用的信息。Rectangledrawnonthemap我尝试通过指定map中心、缩放级别、图像宽度和图像高度,使用静态mapAPI拍摄矩形下方区域的快照。像https://maps.googleapis.com/maps/api/staticmap?center=CENTEROFTHERECTANGLE&zoom=ZOOMLEVELOFTHEMAP&size=WIDTHANDHEIGHTOFTHERECTANGLE&maptype=satellite&key=APIKEY
正如您在下面看到的,我正在使用[src]属性。我想做的是预览从设备相机拍摄的图像。请参阅下面的其余typescript代码。SelectImage这是.ts代码lastImage:string=null;publicpresentActionSheet(){letactionSheet=this.actionSheetCtrl.create({title:'SelectImageSource',buttons:[{text:'LoadfromLibrary',handler:()=>{this.takePicture(this.camera.PictureSourceType.PHOT
我开始学习更多关于Jest和测试(例如快照测试)的知识。我配置React组件的方式是...-src-components-Component1-index.js-__tests__-Component1.test.js-__snapshots__-Component2-index.js-__tests__-Component2.test.js-__snapshots__等等。我想知道在我的.gitignore中要写什么行来忽略具有这种结构的__snapshots__文件夹。目前我有这个(这是错误的)/src/components/*/__snapshots__/此外,最好将它们保留在版
关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭3年前。Improvethisquestion此问题发生在程序启动后约10分钟。CPU成本300%。有什么问题?stackoverflow不支持.svg图像。请下载上传到github的.svg文件。https://github.com/.../raw/master/pprof001.svg
当我将time.Now()编码到JSON对象时,它给出的结果为"2009-11-10T23:00:00Z"但打印时间。现在给出2009-11-1023:00:00+0000UTC。他们为什么不同。什么是T和Z。另外,如何根据this将其转换为swiftNSDate对象?表? 最佳答案 这些值的含义无关紧要,它们是该格式(ISO8601)的一部分。有几种方法可以解决这个问题。一种是为时间或您的结构定义自定义MarshalJSON()方法并使用它来格式化日期,另一种是首先在您的结构中将其表示为字符串,以便当默认实现执行你得到你正在寻找的
我正在打印我的快照。我在下面发布了我希望快照打印出来的样子,并且还希望能够打印单个快照。我不确定该怎么做任何帮助都会很棒。svc:=ec2.New(&aws.Config{Region:"us-east-1"})params:=&ec2.DescribeSnapshotsInput{OwnerIDs:[]*string{aws.String("130300684064"),},}b,err2:=svc.DescribeSnapshots(params)iferr2!=nil{panic(err2)}fmt.Printf(awsutil.StringValue(b))这是输出的内容:ht
在C/C++/Java/Go中,我们使用,来分隔参数:(aint,bint)在ObjectiveC中,我们使用:来表示参数::(int)a:(int)b在Swift中,我们必须同时使用:和,:(a:int,b:int)是否需要冗余? 最佳答案 Swift可能有外部和内部参数名称:(externalinternal:Int)如果没有独特的分隔符,会产生很多歧义。 关于objective-c-为什么Swift函数定义语法是多余的?,我们在StackOverflow上找到一个类似的问题: