我有一个UIView是UINavigationController
的子视图
实施例
- (void) ViewDidload{
UIView *theSubView = [[UIView alloc] init];
UIButton *button = [UIButton . . . .]
. . . .
[theSubView addSubView:button];
[self.view addSubview:theSubView];
}
我放在“theSubView”里面的所有标签和按钮都显示出来,但它们对任何触摸都没有反应。
UIButton
如果它不是“theSubView”的子视图,但是当它是self的子视图时,它可以工作。
所以我的问题是如何在“TheSubView”(UIView)工作中制作Button? 它没有点亮或任何东西。
答案 0 :(得分:10)
如果我是正确的那么你的问题实际上是你使用
[[UIView alloc] init]
而不是指定的初始化程序
initWithFrame:(CGRect)frame
您正在创建一个边界为0,0的视图。您应该使用指定的初始化程序创建它并执行类似这样的操作
/*
* note that the values are just sample values.
* the view's origin is 0,0 and it's width 320, it's height 480
*/
UIView *theSubView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,480];
如果您设置
theSubView.clipsToBounds = YES
结果应该是你根本看不到你的按钮,因为视图的大小是0,0。
UIView只能响应自己界限内的触摸,这就是为什么你的按钮不响应任何触摸的原因。