我有一个名为descriptionView
的UIView,我想在屏幕首次加载时隐藏它,方法是将y坐标偏移为屏幕尺寸+ descriptionView
本身的高度:
但是,在我的控制器中,我的帧更改都没有做任何事情:
override func viewDidLoad() {
super.viewDidLoad()
...
// descriptionView.frame.origin.y = self.view.frame.height
// UIView.animateWithDuration(1, animations: {
// self.descriptionView.frame.origin.y = self.view.frame.height
// self.view.layoutIfNeeded()
// })
//
print("xxx")
descriptionView.frame = CGRectMake(0, self.view.frame.height, self.view.frame.width, 66)
// descriptionView.frame = CGRectOffset(descriptionView.frame, 0, descriptionView.frame.height)
}
无论我做什么,它似乎固定在我的故事板中的那个可见位置。有人可以帮忙吗?
答案 0 :(得分:2)
在
+------------------------+-------------------------------+
| AjaxOptions | HTML attribute |
+------------------------+-------------------------------+
| Confirm | data-ajax-confirm |
| HttpMethod | data-ajax-method |
| InsertionMode | data-ajax-mode |
| LoadingElementDuration | data-ajax-loading-duration |
| LoadingElementId | data-ajax-loading |
| OnBegin | data-ajax-begin |
| OnComplete | data-ajax-complete |
| OnFailure | data-ajax-failure |
| OnSuccess | data-ajax-success |
| UpdateTargetId | data-ajax-update |
| Url | data-ajax-url |
+------------------------+-------------------------------+
中您正在使用IB
,因此您需要操纵约束,或者告诉视图将遮罩转换为约束。
如果你想直接设置框架,那么你会想要这样做:
NSAutoLayout
否则,您可以从IB创建descriptionView.translatesAutoresizingMaskIntoConstraints = true
descriptionView.frame = CGRectMake(...)
和IBOutlets
约束的height
并更新它们:
width
此外,我建议在self.descriptionViewHeight.constant = self.view.frame.width
内而不是viewWillAppear:
内进行帧操作。 viewDidLoad
并不严格保证最终职位。
答案 1 :(得分:1)
不要编辑框架或export default DS.Store.extend({
updateId: function(record, data) {
var oldId = Ember.get(record, 'id');
var id = coerceId(data.id);
if (oldId && oldId !== id) {
this.typeMapFor(record.constructor).idToRecord[oldId] = record;
} else {
this.typeMapFor(record.constructor).idToRecord[id] = record;
}
Ember.set(record, 'id', id);
},
};
,而是编辑其高度约束。
首先,通过cmd将高度约束从Interface Builder拖到类中,从此约束创建descriptionView
(就像对任何UI对象一样)。
然后,您可以将此约束的NSLayoutConstraint
属性设置为0。
(是的,constant
被声明为constant
属性...)
答案 2 :(得分:1)
如果使用约束,则查看框架视图myView.frame
属性不会影响视图的实际位置和大小。取而代之的是制作约束并在代码中更改它,它将如下所示:
descriptionView.heightConstraint.constant = 100
此外,如果您想隐藏某些内容,可以使用属性myView.hidden = true
或myView.alpha = 0
;