如何截取屏幕的一部分

时间:2016-01-19 21:22:43

标签: swift uiimage screenshot

我需要将图像裁剪为高度为25且宽度为屏幕长度的矩形。

我准备好了图像,并将其放置在屏幕中央。我只想截取矩形。

我跟着this answer,但由于某种原因它似乎不适合我。

    UIGraphicsBeginImageContextWithOptions(CGSizeMake(self.view.frame.width,25), false, 0)

    self.view.drawViewHierarchyInRect(CGRectMake(self.view.frame.width,25,view.bounds.size.width,view.bounds.size.height), afterScreenUpdates: true)

    let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()

    UIGraphicsEndImageContext()

    statusImage = image

1 个答案:

答案 0 :(得分:2)

您使用了错误的坐标。使用代码,绘图从视图的右上角开始,并在其右侧绘制空白空间。您应该使用0作为X值和负Y值。例如,如果要截取从Y = 50开始的条形图,则应使用:

self.view.drawViewHierarchyInRect(CGRectMake(0, -50, view.bounds.size.width, view.bounds.size.height), afterScreenUpdates: true)

如果你想从视图顶部绘制,只需将0作为Y值。