相关疑难解决方法(0)

UIView框架,边界和中心

我想知道如何以正确的方式使用这些属性.

据我所知,frame可以从我正在创建的视图的容器中使用.它设置相对于容器视图的视图位置.它还设置该视图的大小.

center可以从我正在创建的视图的容器中使用.此属性更改视图相对于其容器的位置.

最后,bounds是相对于视图本身.它会更改视图的可绘制区域.

你能给约之间的关系更多信息framebounds?那些clipsToBoundsmasksToBounds属性呢?

objective-c frame uiview bounds ios

315
推荐指数
4
解决办法
21万
查看次数

UIView的框架,边界,中心,原点,何时使用什么?

UIView有属性frame,bounds,center,和origin,他们都似乎是相互关联的.大多数时候,我frame在设置a的位置和大小时处理UIView.据我所知,这frame是使用全局坐标系并bounds使用局部视图的坐标(因此它的x和y为0,但并非总是如此),但是在使用什么时我仍然会感到困惑.

在什么情况下(和什么是正确的时间)的其他属性(bounds,center,origin)应使用?

frame uikit uiview bounds

194
推荐指数
3
解决办法
10万
查看次数

[UIScreen mainScreen] .bounds.size在iOS8中是否依赖于方向?

我在iOS 7和iOS 8中运行了以下代码:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
BOOL landscape = (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight);
NSLog(@"Currently landscape: %@, width: %.2f, height: %.2f", 
      (landscape ? @"Yes" : @"No"), 
      [[UIScreen mainScreen] bounds].size.width, 
      [[UIScreen mainScreen] bounds].size.height);
Run Code Online (Sandbox Code Playgroud)

以下是iOS 8的结果:

Currently landscape: No, width: 320.00, height: 568.00
Currently landscape: Yes, width: 568.00, height: 320.00
Run Code Online (Sandbox Code Playgroud)

与iOS 7中的结果相比:

Currently landscape: No, width: 320.00, height: 568.00
Currently landscape: Yes, width: 320.00, height: 568.00
Run Code Online (Sandbox Code Playgroud)

是否有任何文件指定此更改?或者它是iOS 8 API中的临时错误?

orientation uiinterfaceorientation ios uiscreen ios8

184
推荐指数
8
解决办法
8万
查看次数

如何在Swift中旋转UIButton和UILabel的文本?

你怎么能为UIButton和旋转文字UILabel?90度,180度.

注意:在将此标记为重复之前,我有意将我的问题建模为此问题的Swift版本:如何在Objective-C中为UIButton和UILabel旋转文本?

rotation uibutton uilabel ios swift

62
推荐指数
3
解决办法
5万
查看次数

如何在Swift中应用多个转换

我想将多个变换应用于UIView(或子类UIView),例如平移,旋转和缩放.我知道可以应用两个变换CGAffineTransformConcat,但是如果我有三个或更多变换,我该怎么做?

我看过这些问题:

但是这些问题正在问一些不同的东西,给出的答案只是谈论应用两个变换CGAffineTransformConcat.此外,他们使用Objective-C而不是Swift.

transform uiview cgaffinetransform ios swift

49
推荐指数
2
解决办法
3万
查看次数

NSView的边界与帧

边界和边框之间有什么区别?事实上,为什么"界限"甚至存在?'bounds'的大小等于帧的大小,bound的起源应始终为0,0.

cocoa objective-c nsview

43
推荐指数
3
解决办法
2万
查看次数

如果设置为YES,UIView layer.masksToBounds正在做什么?

谁知道?我找到了一些答案,但是太复杂而且太深了.我需要一个简单的答案.

iphone uiview

40
推荐指数
2
解决办法
2万
查看次数

在iPhone中重新定位后,"不正确"的框架/窗口大小

在我的iPhone OS应用程序中,我希望(需要)观察设备方向的变化,以便重新排列屏幕的某些部分.我使用的方法是用来CGRect frame = [UIScreen mainScreen].applicationFrame获取屏幕大小,并从那里计算其他控件的大小和/或位置(我也尝试过self.view.frame).

所有测试都是在Portrait模式下完成的,所以我可以专注于编写主要功能,然后再对Landscape进行一些调整.这里输入问题:-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation我在继续之前添加了一些日志来检查大小,但显然宽度和高度的值是"错误的"(我说"错误",因为乍一看这些值对我来说没有意义) .

这是一些日志记录的输出:

  • 旋转:横向[w = 300.000000,h = 480.000000]
  • 旋转:纵向[w = 320.000000,h = 460.000000]

Landscape中"w"和"h"的值似乎与我相反 - 我期待w = 480和h = 300.

我究竟做错了什么?我用来调试的代码如下.

-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    CGRect frame = [UIScreen mainScreen].applicationFrame;
    CGSize size = frame.size;

    NSLog(@"%@", [NSString stringWithFormat:@"Rotation: %s [w=%f, h=%f]",  
        UIInterfaceOrientationIsPortrait(self.interfaceOrientation) ? "Portrait" : "Landscape",
        size.width, size.height]);
}
Run Code Online (Sandbox Code Playgroud)

iphone frame uiview

38
推荐指数
3
解决办法
4万
查看次数

iPhone中的像素和点是什么?

来自UIImage参考,

尺寸

图像的尺寸,考虑方向.(只读)

@property(nonatomic, readonly) CGSize size
Run Code Online (Sandbox Code Playgroud)

讨论

在iOS 4.0及更高版本中,此值反映图像的逻辑大小,并以磅为单位进行测量.在iOS 3.x及更早版本中,此值始终反映以像素为单位测量的图像尺寸.

像素和点之间有什么区别?

iphone pixel ios

33
推荐指数
2
解决办法
5万
查看次数

如何在CALayer上进行转换?

在写这个问题之前,我已经

但是,我仍然无法理解如何在图层上进行基本变换.寻找翻译,旋转和缩放的解释和简单示例一直很困难.

今天我终于决定坐下来,做一个测试项目,然后把它们搞清楚.我的答案如下.

笔记:

  • 我只做Swift,但如果有人想要添加Objective-C代码,请成为我的客人.
  • 在这一点上,我只关心理解2D变换.

transform calayer ios swift

31
推荐指数
1
解决办法
3万
查看次数