首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查视网膜像素iOS的工具或技术?

检查视网膜像素iOS的工具或技术?
EN

Stack Overflow用户
提问于 2015-01-21 01:14:22
回答 1查看 212关注 0票数 2

我正在开发一个iOS应用程序,它需要非常精确的绘图,并且希望有一些方法可以直观地检查在我的iOS设备屏幕上的每个(物理)像素上正在绘制的是什么。这类似于OS上的Pixie应用开发工具,但是对于iOS --而不是简单的放大和反混叠屏幕,它将显示每个像素的一个非常清晰的网格,以及这些像素的颜色和颜色。

有人知道这样的工具或技术吗?

这是我的Retina MacBook上的Pixie在OS上的截图,它显示了我正在寻找的输出类型。例如,您可以清楚地看到,设计者为黄色最小化图标中的“减号”指定了一个点(跨越两个视网膜像素)。

EN

回答 1

Stack Overflow用户

发布于 2015-01-26 17:17:29

假设您使用Quartz对UIView进行绘图,则可以使用CGContextScaleCTM在像素边界上绘制,而不是在点边界上绘制。这是一个粗略的大纲,你会做什么来做这与屏幕截图你的应用。您也可以让用户拍摄另一个应用的屏幕快照,然后将其导入您的应用程序中。

代码语言:javascript
运行
复制
-(void)drawRect:(CGRect)rect
{
    UIView* rootView = <GET_YOUR_ROOT_VIEW>;

    //You will probably want to change rect so you don't get distortion 
    //This assumes that this view is the same size as the screen
    [rootView drawViewHierarchyInRect:CGRectMake(0,0,rect.size.width*8, rect.size.height*8, afterScreenUpdates:YES];

    CGContextRef cxt = UIGraphicsGetCurrentContext();

    //Assumes this is @2x retina.  You should check the contentScale to be sure
    //and change accordingly
    CGContextScaleCTM(ctx, 0.5, 0.5);

    //Since we made the screen shot be 8x bigger the pixels
    //on an @2x device are in increments of 4
    for (int x = 0; x < rect.size.width*8; x+=4)
    {
        //Draw a line at x to ctx
    }

    for (int y = 0; y < rect.size.height*8; y+=4)
    {
        //Draw a line at y to ctx
    }

}

很抱歉,我没有时间亲自编写和测试这段代码,所以它可能有一些小问题。但这会让你朝着正确的方向前进。

另外,由于您正在放大图像,实际上您不需要用CGContextScaleCTM来更改缩放,您只需要在正确的间隔内画出你的线条。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28058016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档