- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
CGSize 和 CGRect 有什么区别?
作为初学者阅读 CGGeometry Reference它不是很明显,特别是因为有提到 size 是一个向量。我有点惊讶我在 StackOverflow 上找不到这个基本问题,所以我决定进一步研究它并在下面发布我的答案。
最佳答案
CGSize
是宽度和高度。它在技术上不被视为矩形(这也是我一开始将它与 CGRect
混淆的原因之一),而只是一个大小。但是,为了便于说明,我将其表示为下面的矩形:
这种宽度和高度的组合被称为结构,它是结构的缩写,最初来自 C 语言(但我将在这里使用 Swift 而不是 Objective C 语法)。结构只是一组逻辑上相关的变量。这里我们可以看到CGSize
结构:
struct CGSize {
var width: CGFloat
var height: CGFloat
}
其中 CGFloat
是 float
(32 位)或 double
(64 位)。 (参见 What's the difference between using CGFloat and float?)
您可以通过执行以下操作来制作 CGSize
:
var size = CGSize(width: 50, height: 30)
CGRect
是一个矩形。但是,从名称中不能立即看出的是,除了宽度和高度之外,它还有一个来源。
相比之下,
CGsize
没有来源。
CGRect
也是一个结构体。事实上,它是结构的结构:CGPoint
(原点)和CGSize
(宽度和高度)。在这里:
struct CGRect {
var origin: CGPoint
var size: CGSize
}
CGPoint
在哪里
struct CGPoint {
var x: CGFloat
var y: CGFloat
}
您可以通过执行以下操作创建一个CGRect
:
var rect = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 50, height: 30))
宽度和高度值可以是负数。我们可以通过 CGRect
查看它的样子。注意原点如何出现在不同的角上:
A
CGSize
structure is sometimes used to represent a distance vector, rather than a physical size. As a vector, its values can be negative. To normalize aCGRect
structure so that its size is represented by positive values, call theCGRectStandardize
function.
Vectors在数学中有大小(或长度)和方向。虽然 CGSize
没有原点,但您可以从下图中看出宽度和高度及其关联的正值或负值如何给出长度和方向。
关于ios - CGSize 和 CGRect 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30658045/
我在不赞成使用的方法上遇到问题,我正在尝试将其更改为现在可以正常工作,但是不走运,有人知道如何解决此问题吗? 问题是我正在编写的代码不是我的,所以我做得不太好。 这是原始代码(是不推荐使用的): CG
我有一个 UIView,它充当容器,并且该容器的宽度需要根据最长的字符串动态更改。所以我想根据字符串长度获取CGFloat/CGSize,还可以吗? 看起来最有用的方法现在已经被贬值了...... m
我有不同大小的页面。我想使用枚举来选择页面大小。有人这样想 typedef NS_ENUM(CGSize, SizeType) { MAXSIZE=CGSizeMake(640, 1196)
我想根据标签的大小更改标签的大小。我在第一行设置了一个断点,当我向下看时,当我到达以 CGSize 开头的行时,我看到“tagsSize”实际上有一个值,然后在该行之后将其更改为零。我实际上在同一项目
我正在计算图像的高度和宽度值,并在 if 条件下检查 imagsize 是否可用。如果不是,那么我正在为 UIImageView 大小分配一些值。但是当我在 if 条件下检查图像大小时,我得到了这个错
您好,我正在用这些代码重新创建文本大小 CGSize textSize = [self.text sizeWithFont:self.font cons
我有一个 ImageView 和一个 CustomView,我想在屏幕上显示相同的大小。 public override func viewDidLayoutSubviews() { super.vi
我有这个电话: myObject.perform(Selector("setCellSize:"), with: CGSize(width: 50.0, height: 50.0)) 在类里面我有:
如果我强制其框架高度足够高,我有一个 UILabel 可以正确地自动换行。但是,我希望它动态地找到合适的高度,而 sizeWithFont 方法并没有这样做;该方法只是在我的标签中创建了一行: CGS
我一直在尝试使用 cgsizemake 如下: 我正在尝试使用 cgrectmake 而不是更改坐标来使我的图像框架具有不同的大小。 到目前为止我已经尝试过了 maincharacter.frame
我试图像这样记录(打印)CGSize 对象的值: CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49); NSLog(@"
我有默认(正方形)大小的 CGRect 。大小可根据 View Controller 的需要进行调整,但始终保持正方形比例。 如果我想在矩形内绘制一个点,但矩形的比例在大小上是可变的,我将如何根据矩形
在我的网络服务响应中,我得到了我的一个 JSON 键的值,如下所示: { dimensions = "1200, 800"; displayName = "something"; displayNum
假设,我有两个名为 A 和 B 的 CGSize。 在哪里 B = CGSizeApplyAffineTransform(A, CGAffineTransformMakeScale(x,y)); 如果
我得到的 CGSize 的高度比标签字体长。我想删除文本和 UILabel 边缘之间的顶部/左侧/右侧/底部填充,以便 UILabel 框架正好适合它包含的文本。 这是我正在使用的代码...... N
在 iOS 7 中 sizeWithFont: 已弃用。建议的替换方法是 sizeWithAttributes: 但是当我将方法从 sizeWithFont: 更改为 sizeWithAttribut
我需要为给定的公制尺寸呈现 PDF。我可以在 iOS 坐标中呈现 PDF,但如何将 1mm 转换为点。 谢谢 最佳答案 点的大小取决于设备。您将需要一个引用表并检查您在哪个设备上运行。您可以找到有关尺
我的应用在 iOS 7 上有问题 我使用以下方法计算我的标签尺寸: CGSize constraint = CGSizeMake(275, 141); CGSize size; size = [_rt
所以很有趣,我正在尝试使用 collectionViewLayout sizeForItemAtIndexPath 在 collectionView 中一次只显示一个项目并水平滚动,我试过这个: -
我在我的一些程序中遇到了一些这样的错误,并且一直在尝试修复它。示例:当我输入大小而不是编码器时,它会告诉我它不正确并将其更改回编码器。 func reset() { self
我是一名优秀的程序员,十分优秀!