我正在开发一个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];
但这并没有给我理想的价值。
我该怎么办?
(P.S)view.frame.size.width
是以像素还是以点为单位返回宽度?
您好,您可以使用转换属性来缩放视图。假设您希望将UIView缩放2倍,那么您可以使用。
self.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2, 2);
CGRect宽度和高度返回的点不是像素。一点有两个像素用于2x设备,如iPhone 6,7和三个像素用于3x设备,如iPhone 6 Plus,7 Plus。
有关更多详细信息,请参阅this Apple的文档链接。