/*这段代码功能是添加按钮,视图上移,但是发现在上移的视图里,添加的按钮不响应,这是为什么呢?*/
-(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");
}
Le contrôle d'interface dépasse la position du contrôle parent.
Déterminez la taille du cadre de self.view, regardez la taille du cadre de addview, puis regardez la taille de la position du cadre de btn et assurez-vous que chaque calque est dans le cadre de self.view~
Oui, addview est hors de portée et l'objet utilisé pour l'animation est erroné. Merci.
Je ne comprends pas ce que vous voulez écrire, mais le Y et la hauteur du cadre dans UIView *addView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREENSIZE.height,SCREENSIZE.width, 80)]; mal défini, changez-le et cliquez sur
.UIView是需要添加交互效果的,默认是不能接到点击效果
, définissez l'attribut qui accepte les effets de clic sur OUI et le tour est jouéSoit cela dépasse la portée du contrôle parent, soit l'interaction du contrôle parent n'est pas autorisée
Si vous devez interagir, il existe un moyen
Personnaliser une vue parent irrégulière (je suppose que vous ne savez pas comment poser cette question)
Redéfinir la position par rapport à la vue parent dans l'événement tactile de la vue