bsc*_*ltz 5 uitextfield ios ios6
这是我的情况:
UIViewController我的StoryBoard中有一个地图功能。我要添加一个Google Map视图(GoogleMaps iOS 1.3.1),例如:
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20 zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectMake(0, 49, 320, 450) camera:camera];
mapView_.myLocationEnabled = YES;
self.view = mapView_;
Run Code Online (Sandbox Code Playgroud)
我创建了一个自定义视图:MapTopBar.xib。简而言之,它是UIView带有UIImageView(背景)和UITextField&按钮的。它具有一个后备类文件,并且所有UITextFields属性均已设置(代理,出口等)。
我正在将自定义视图添加到我的Map VC中,如下所示:
UIView *topBar = [[MapTopBar alloc] initWithFrame:CGRectMake(0, 0, 320, 49)];
[self.view addSubview:topBar];
Run Code Online (Sandbox Code Playgroud)
我的自定义视图已添加到主视图,但是UITextField没有接收任何触摸事件。没有显示键盘,该字段中没有光标,什么也没有。好像有什么东西掩盖了它,不允许任何用户交互。可以按下它旁边的按钮,并且效果很好。
我尝试了许多不同的方式(以编程方式创建整个topBar视图,以编程方式添加文本字段),并且无论如何,文本字段都不会引起用户交互。
我启用了用户交互功能,确保没有任何视图位于文本字段的顶部,所有视图均为null。我觉得我缺少一些简单的东西。为什么我不能与我的文本框交互?
另外:如果相关,则上面的代码在其自身的子程序中,该子程序从viewDidLoadsuper调用之前被调用。
UITextField 似乎超出了其父视图的范围,并且没有被剪切。(或者父视图超出了其父视图的范围......等等)
在 viewDidAppear 中,使用调试器或 NSLog 记录以 UITextField 结尾的视图层次结构。检查以确保每个视图的框架完全位于其父视图内。
像这样的东西应该能够识别任何框架外视图:
UIView* v = _myTextField;
while ( v.superview != nil )
{
NSLog( @"%@ - %@", NSStringFromClass([v class]), CGRectContainsRect( v.superview.bounds, v.frame ) ? @"GOOD!" : @"BAD!" );
v = v.superview;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2726 次 |
| 最近记录: |