On Jan 15, 2010, at 16:16:15, David Duncan wrote:

> On Jan 15, 2010, at 4:10 PM, Rick Mann wrote:
> 
>>> If not, this could be done (with performance penalty) using the layer's 
>>> mask property. Simplest way I can think is to make a new layer, assign the 
>>> contents of the parent layer to that new layer's contents, then assign that 
>>> layer as the mask of all subviews. This may require a bit of futzing around 
>>> to get right however.
>> 
>> The subviews will consist of a UIScrollView and a set of UIButtons. 
>> Generally, I'd like to avoid subclassing them, if possible. I'm implementing 
>> a control with behaviors very similar to a horizontal UIPickerView. 
>> Unfortunately, it lives in a non-rectangular shape, and the surrounding 
>> elements are transparent and should NOT show the control underneath.
> 
> 
> I don't see any reason why the mask property wouldn't work for that, as log 
> as the performance is acceptable to you (I believe using a mask will cause an 
> offscreen render to occur). That said, if you can possibly invert this (that 
> is, invert the mask and draw the content *above* the others) you should have 
> better performance.
> 
> That and I think I spoke a little fast on the exact usage of the mask – iirc, 
> you should only need to apply it to a common parent and it should affect all 
> children as well.

Hmm. I tried some experiments with your suggestion, and seemed to be getting 
masking with the inverse of what I specified. So I looked at the docs for the 
mask property, and there's this note: "iPhone OS Note: As a performance 
consideration, iPhone OS does not support the mask property."

It's clearly doing something, but it's not clear that it's doing what I want. 
Oh. It's working in the simulator, I bet it won't work on the phone, and it 
still causes a problem: it doesn't make the masked-out areas transparent.

Thanks, though.

-- 
Rick


_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to