1

以下不起作用。

    GLKView *view = (GLKView *)self.view;
    view.contentScaleFactor=1.0;

记录view[UIScreen mainScreen]对象:

<GLKView: 0x15638f60; frame = (0 0; 320 568); autoresize = RM+BM; layer = <CAEAGLLayer: 0x15638960>>
<UIScreen: 0x15629a60; bounds = {{0, 0}, {320, 568}}; mode = <UIScreenMode: 0x15629c40; size = 640.000000 x 1136.000000>>

[[UIScreen mainScreen] scale];仍然是 2.0 而不是1.0

我需要在其他对象上设置比例因子吗?

4

1 回答 1

1

[UIScreen mainScreen].scale 是用户正在使用的物理设备的实际比例。

(除非您拥有令人难以置信的旧机器,否则它始终是“2.0”。显然,2014 年 Apple 即将推出“3.0”机器。)

这是一个典型的例子......

    float isf = 1.0 / [UIScreen mainScreen].scale;

    CGPatternRef strokePattern = CGPatternCreate(
                    NULL,
                    CGRectMake(0,0,wholeWidth,wholeHeight),

                    CGAffineTransformScale(
                        CGAffineTransformIdentity,
                        isf,-isf),

                    wholeWidth,wholeHeight,
                    kCGPatternTilingNoDistortion,
                    true,
                    &kPatternCallbacks);

希望它在某种程度上有所帮助!

于 2014-05-18T08:48:28.477 回答