ios 绘制右上角的矩形
ios draw rectangle with top right corner
我正在尝试制作一个使用右上角 (x,y) 而不是通常的左上角绘制的矩形。我尝试按 -1 进行缩放,但这并没有起作用。
我需要它,因为我正在为 RTL 语言环境开发应用程序。
如果您使用自动布局,您可以使用前导和尾随约束(而不是左右约束),动画将自动针对目标语言进行调整。例如,考虑以下覆盖 "curtain" 视图的简单演示,然后在两秒后 "pulls it aside" 通过动画尾随约束:
let curtain = UIView()
curtain.backgroundColor = .darkGrayColor()
curtain.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(curtain)
let trailingConstraint = curtain.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor)
NSLayoutConstraint.activateConstraints([
curtain.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor),
curtain.topAnchor.constraintEqualToAnchor(view.topAnchor),
curtain.bottomAnchor.constraintEqualToAnchor(view.bottomAnchor),
trailingConstraint
])
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(2 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
trailingConstraint.constant = -self.view.bounds.size.width
UIView.animateWithDuration(0.5) {
self.view.layoutIfNeeded()
}
}
如果您的项目的本地化是 LTR 语言,它将动画化此 "curtain" 从右边缘向后拉。
但是如果您的项目的本地化是一种 RTL 语言,如下所示,那么它将以动画方式从左边缘拉动此 "curtain":
我正在尝试制作一个使用右上角 (x,y) 而不是通常的左上角绘制的矩形。我尝试按 -1 进行缩放,但这并没有起作用。
我需要它,因为我正在为 RTL 语言环境开发应用程序。
如果您使用自动布局,您可以使用前导和尾随约束(而不是左右约束),动画将自动针对目标语言进行调整。例如,考虑以下覆盖 "curtain" 视图的简单演示,然后在两秒后 "pulls it aside" 通过动画尾随约束:
let curtain = UIView()
curtain.backgroundColor = .darkGrayColor()
curtain.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(curtain)
let trailingConstraint = curtain.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor)
NSLayoutConstraint.activateConstraints([
curtain.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor),
curtain.topAnchor.constraintEqualToAnchor(view.topAnchor),
curtain.bottomAnchor.constraintEqualToAnchor(view.bottomAnchor),
trailingConstraint
])
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(2 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
trailingConstraint.constant = -self.view.bounds.size.width
UIView.animateWithDuration(0.5) {
self.view.layoutIfNeeded()
}
}
如果您的项目的本地化是 LTR 语言,它将动画化此 "curtain" 从右边缘向后拉。
但是如果您的项目的本地化是一种 RTL 语言,如下所示,那么它将以动画方式从左边缘拉动此 "curtain":