如何以像素为单位设置UIVew的宽度和高度?

时间:2019-03-15 07:42:02

标签: ios objective-c uiview pixel scaling

我正在开发一个ObjectiveC应用程序,在该应用程序中,我需要以像素为单位设置uiview的宽度和高度,然后将uiview缩放为等于设备的宽度。宽度和高度的像素值是固定的(例如900 px x 500 px)。

目前我正在这样做,

    UIScreen* mainScreen = [UIScreen mainScreen];

    CGRect frame = CGRectMake(0, 0, 900.0, 500.0);
    [view setFrame:frame];
    CGFloat valScale = mainScreen.bounds.size.width/900.0;
    [view setContentScaleFactor:valScale];

但是,这并没有给我想要的值。

我该怎么办?

(PS)view.frame.size.width返回像素或点的宽度吗?

1 个答案:

答案 0 :(得分:0)

您好,您可以使用transform属性缩放视图。假设您希望将UIView缩放2倍,则可以使用。

self.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2, 2);

CGRect的宽度和高度返回点而不是像素。对于2x的设备(如iPhone 6,7),一个点有两个像素;对于3x的设备(如iPhone 6 Plus,7 Plus),一个点为三个像素。

有关更多详细信息,请参阅this Apple的文档链接。