我有一个添加了多个UILabel的UIView。我只是用动画将它们全部移动到屏幕的中央,然后尝试在动画完成处理程序中将它们从其超级视图中删除。
for (label in [self.view subviews])
{
if([label isKindOfClass:[UILabel class]])
{
CGRect frame = CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/2, label.frame.size.width, label.frame.size.height);
[UIView animateWithDuration:2.0
delay:0.0
options: UIViewAnimationOptionCurveEaseInOut
animations:^{
[self->label setFrame:frame];
}
completion:^(BOOL finished){
dispatch_async(dispatch_get_main_queue(),^{
[self->label removeFromSuperview];
});
}
];
}
}
我遇到的问题是,在动画结束时仍保留UILabels。如果我将removeFromSuperView调用放在动画块的外面,那么它可以工作,但是当然,在动画有机会完成之前,它们将被删除。
答案 0 :(得分:1)
在for-in中有$sql="SELECT * FROM image";
$res=$conn->query($sql);
if($res->num_rows >0){
while($row=$res->fetch_assoc()){
$filenam= $row['name'];
$binaryData= explode(',',$row['binary_image']);
$extens= $row['extension'];
//echo '<img src="data:image/jpeg;base64,'.$binaryData[1].'" alt="photo">
<br>';
?>
<img src="<?=$binaryData[0].','. $binaryData[1] ?>" />
<?php }
}
作为变量,在块中有label
。显然,您并没有在您原来认为的标签上进行操作。