当我将数字更新为标签时,会使视图返回到原始位置。
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBOutlet var aview: UIView!
var number = 0
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func plus(sender: UIButton) {
number++
label.text = "number:\(number)"
}
@IBAction func move(sender: AnyObject) {
aview.frame.origin.y -= 20
}
}
我在网上找不到答案,请帮我解决这个问题。非常感谢你!
答案 0 :(得分:0)
问题可能与标签重新加载时的约束重新加载有关。
不是设置aview.frame.origin.y -= 20
,而是应该为保持aView的y位置的约束做出一个出口,然后更新该约束出口的常量。
答案 1 :(得分:0)
因为您设置的xib或Storyboard使用Autolayout:
因此,如果您没有设置约束系统将自动生成它。当您通过设置框架更改框架时,它会生效,但是当您访问它时。它会自动回到旧位置。
如果你不希望它发生。您在viewDidLoad中设置:
dashboard.directive('confirmOnExit', function() {
return {
link: function($scope, elem, attrs) {
window.onbeforeunload = function(){
if ($scope.billdata.$dirty) {
return "The form is not saved, do you want to stay on the page?";
}
}
$scope.$on('$locationChangeStart', function(event, next, current) {
if ($scope.billdata.$dirty) {
console.log('next',next,current);
if(!confirm("The form is not saved, do you want to stay on the page?")) {
event.preventDefault();
}else{
console.log('hii');
}
}
});
}
};
});