Subview的事件响应
在view的层级里面,默认情况下subview是可以显示到其父view的frame区域以外的,通过设置clipToBounds属性为YES,可以限制subview的显示区域。但是touch在各个UIView中传递的时候,区域时限制在view的frame内,此处包含两个信息:1、在当前view的frame以外所做的操作是不会传递到该view中的,这一点很容易理解。2、如果touch事件是发生在当前view的frame以外,该view所有的subview将也不会再收到该消息。这一点通常容易被我们忽略,很多奇怪的问题就是这个引起的。
下面请看一个小例子,定制view的代码如下:
//
// SvTestClipSubviewEvent.h
// SvUIViewSample
//
// Created by maple on 3/19/12.
// Copyright (c) 2012 smileEvday. All rights reserved.
//
// 默认的情况下,subView可以超出父view的frame,即可以显示到父View的外边
// 但是消息的接受返回却是由于父View的大小限制,即出了父View的subView将不能收到消息
// 在程序中一定要注意当前程序view的最底层是充满整个window的可用区域的,
// 否则将会导致某些区域明明有按钮但是却点不中的问题
#import <UIKit/UIKit.h>
@interface SvTestClipSubviewEvent : UIView
@end
本文地址:https://www.stayed.cn/item/10827
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我