Согласно вашему вопросу, вы добавили subView в представление ViewController, поэтому, когда вы создаете представление
let subView: UIView = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
и делаете это
view.addSubview(subView)
, это означает, что ваше подпредставление будет на 50 позиции. вниз и влево от экрана. поэтому, когда вы сделаете это.
subView.frame.origin.y = subView.frame.origin.y + 100
, это сместит ваш кадр дальше вниз по экрану, когда вы меняете позицию y кадра, которая является начальной позицией создания вашего представления на экране.
В самом простом виде границы представления относятся к его координатам относительно его собственного представления (как если бы остальная часть вашей иерархии представления не существовала), тогда как его frame относится к его координатам относительно родительского представления . Рамка будет отражать позицию в представлении родителей. Это означает несколько вещей:
1.Если вы создаете представление в X: 0, Y: 0, ширине: 100, высоте: 100, его рамка и границы совпадают.
2. Если вы переместите это представление в X: 100, его рамка будет отражать это изменение, но его границы не будут. Помните, что границы относятся к собственному пространству представления, и внутренне к представлению ничего не изменилось.
3. Если вы преобразуете представление, например, поворачиваете его или масштабируете его, рамка изменится, чтобы отразить это, но границы все равно не изменятся - с точки зрения внутреннего взгляда, оно не изменилось
надеюсь, что оно прояснит ваши сомнения