[TIMOB-14923] iOS: rect and getRect values returning empty object
| GitHub Issue | n/a |
|---|---|
| Type | Bug |
| Priority | Low |
| Status | Open |
| Resolution | Unresolved |
| Affected Version/s | Release 2.1.4, Release 3.0.2, Release 3.1.1, Release 3.1.2 |
| Fix Version/s | n/a |
| Components | iOS |
| Labels | defect, ios |
| Reporter | Mark Ross |
| Assignee | Unknown |
| Created | 2013-08-20T16:14:41.000+0000 |
| Updated | 2018-02-28T20:03:41.000+0000 |
Description
*Problem*
I cannot get values for rect or getRect on a view. I try to see the values after adding to the window and after a postlayout event (per the docs). Both return an empty object.
*Test case*
var win = Ti.UI.createWindow({
backgroundColor: 'white'
});
var v1 = Ti.UI.createView({
height: 104,
width: Ti.UI.FILL,
top: 30,
backgroundColor: '#f2f2ff'
});
var l1 = Ti.UI.createLabel({
text: 'I am a label',
height: Ti.UI.SIZE,
top: 20,
left: 97,
right: 1,
textAlign: 'center',
color: 'black',
font: {
fontSize: 18,
fontWeight: 'bold'
},
minimumFontSize: 14
});
function v1post() {
Ti.API.info('v1 rect (postlayout): ' + JSON.stringify(this.getRect()));
v1.removeEventListener('postlayout', v1post);
}
v1.addEventListener('postlayout', v1post);
v1.add(l1);
win.add(v1);
Ti.API.info('v1 rect: ' + JSON.stringify(v1.getRect()));
win.open();
*Output*
[INFO] : v1 rect: {}
[INFO] : v1 rect (postlayout): {}
Tested with SDK versions 2.1.4, 3.0.2, 3.1.1, 3.1.2 reproduced error on each.
Just a note: the getRect() return value is not JSON.stringifiable, but you should still be able to look at the return value's properties individually. Try replacing your ln. 28 with something like this:
var v1Rect = this.getRect();Ti.API.info('v1Rect x: ' + v1Rect.x);Ti.API.info('v1Rect y: ' + v1Rect.y);Ti.API.info('v1Rect height: ' + v1Rect.height);Ti.API.info('v1Rect width: ' + v1Rect.width);While you can't see all the values at once stringified, this at least shows that those values exist and that you can use them.