A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by an electronic device with a display and a touch-sensitive surface, cause the device to:
- display content and a virtual drawing aid comprising an on-screen ruler on the display;
- detect a first portion of a rotational gesture directed to the on-screen ruler, wherein detecting the first portion of the rotational gesture includes detecting first movement of a first contact in a first direction around a pivot location on the touch-sensitive surface;
- in response to detecting the first portion of the rotational gesture directed to the on-screen ruler:
- rotate, relative to the content, the on-screen ruler by a first angular amount about an anchor point on the display in accordance with the first movement of the first contact around the pivot location on the touch-sensitive surface;
- and
- in accordance with a determination that the on-screen ruler has entered a first snap zone associated with a first snap angle upon rotation of the on-screen ruler, in response to the first portion of the rotational gesture, by the first angular amount, further rotate the on-screen ruler by a first adjusted amount to bring the on-screen ruler into alignment with the first snap angle;
- after rotating the on-screen ruler by the first adjusted amount, detect a second portion of the rotational gesture directed to the on-screen ruler that follows the first portion of the rotational gesture, wherein detecting the second portion of the rotational gesture includes detecting second movement of the first contact in a second direction around the pivot location on the touch-sensitive surface, and wherein the second movement in the second direction satisfies unsnapping criteria;
- and,
- in response to detecting the second portion of the rotational gesture directed to the on-screen ruler, further rotate the on-screen ruler by a second adjusted amount to bring the on-screen ruler into alignment with a respective on-screen location that corresponds to a current location of the first contact on the touch-sensitive surface;
- wherein the first contact remains on the touch-sensitive surface throughout the rotational gesture;
- after rotating the on-screen ruler by the second adjusted amount, detect a third portion of the rotational gesture directed to the on-screen ruler, wherein detecting the third portion of the rotational gesture includes detecting third movement of the first contact around the pivot location on the touch-sensitive surface;
- and,
- in response to detecting the third portion of the rotational gesture directed to the on-screen ruler, rotate the on-screen ruler around the anchor point on the display in accordance with the third movement of the first contact around the pivot location on the touch-sensitive surface;
- and
- the one or more programs include instructions for responding to continued detection of the third portion of the rotational gesture directed to the on-screen ruler, after the on-screen ruler exits and re-enters the first snap zone associated with the first snap angle during a first portion of the third movement of the first contact, by rotating the on-screen ruler around the anchor point on the display in alignment with the respective on-screen location that corresponds to the current location of the first contact on the touch-sensitive surface as the on-screen ruler rotates into and out of the first snap zone.