/*这段代码功能是添加按钮,视图上移,但是发现在上移的视图里,添加的按钮不响应,这是为什么呢?*/
-(void)showView
{
UIView *addView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREENSIZE.height,SCREENSIZE.width, 80)];
[addView setBackgroundColor:[UIColor whiteColor]];
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 80, 40)];
[btn setTitle:@"相册" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(openPhoto1) forControlEvents:UIControlEventTouchUpInside];
[addView addSubview:btn];
[self.view addSubview:addView];
//计算控制器的view需要平移的距离
CGFloat moveY=0;
if (_bShowAddView==false)
moveY = -80;
else
moveY=0;
_bShowAddView=!_bShowAddView;
//
// // 4,执行动画
[UIView animateWithDuration:0.5 animations:^{
self.view.transform = CGAffineTransformMakeTranslation(0, moveY);
}];
}
-(void)openPhoto1
{
NSLog(@"test");
}
인터페이스 컨트롤이 상위 컨트롤의 위치를 초과합니다.
self.view의 프레임 크기를 결정하고 addview의 프레임 크기를 확인한 다음 btn의 프레임 위치 크기를 보고 각 레이어가 self.view의 프레임 내에 있는지 확인하세요~
예, addview가 범위를 벗어났고 애니메이션에 사용된 객체가 잘못되었습니다. 감사합니다.
무엇을 쓰시려는지 모르겠지만 UIView *addView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREENSIZE.height,SCREENSIZE.width, 80)]; 잘못 설정했다면 변경하고
을 클릭하세요.UIView是需要添加交互效果的,默认是不能接到点击效果
클릭 효과를 허용하는 속성을 YES로 설정하면 완료됩니다상위 컨트롤의 범위를 벗어나거나 상위 컨트롤의 상호 작용이 허용되지 않습니다
소통해야 한다면 방법이 있습니다
불규칙한 부모 보기 사용자 정의(이 질문을 어떻게 해야 할지 모르실 것 같은데요)
뷰의 터치 이벤트에서 상위 뷰를 기준으로 위치를 재정의