iPhone - 如何部分隐藏子视图?

4
我正在开发一个手势应用程序,可以使用捏合、平移和旋转手势。我有一个主图像视图,宽高为300,原点x是0,y是70。这个图像视图是我从接口构建器中使用的。在添加了一个标签后,我可以在视图上拖动、捏合和旋转该标签。现在实际需求是当我将标签拖出图像视图时,应该显示部分标签,例如(我的标签文本是ABCDXYZ)。当我拖动Z到外面时,Z应该不可见,其他部分ABCDXY应该可见。更清晰的解释是将一个视图拖入另一个视图中。如何实现这一点?

2
一个简单的方法是为图像视图、标签和视图设置一些适当的颜色,使标签变得不可见。 - V-Xtreme
1
@VXtreme 我不想让整个标签都消失,只有在 ImageView 外部的部分需要消失。 - Santhosh
@sachi ,我觉得你可以减小标签的框架大小,即截取超出图像视图的标签部分。 - Pratyusha Terli
@SANTHOSH:如果我的UIView是白色的,UIImageView是黑色的,UILabel也是白色的,那么UILabel在UIView上的一部分肯定会看不见。 - V-Xtreme
@PratyushaTerli 我怎样可以截断。 - Santhosh
显示剩余2条评论
2个回答

2
您需要做的是创建一个UIView,然后在其上添加UIImageView
[View addSubView:ImageView]; 

然后在UIImageView上添加UIlabel,如下所示:
[ImageView addSubView:Label];

现在设置clipsToBounds = YES。我认为现在您的部分标签问题将得到解决,因为标签将在UIView内移动,一旦超出范围,则会部分显示。如有疑问,请告诉我。谢谢 :)

0

针对这个问题,提供一个手持设备的解决方案确实很棘手,但可以提出一些建议。假设您的UILabel文本是动态的,有一些场景可以遵循来实现此目的。

1)当您在UIImageView中触摸标签时,应该获得其精确的坐标

2)获取用户在UILabel上触摸的位置。

3)将触摸坐标与UILabel的总坐标进行比较。

4)假设哪个字符被触摸到。(您应该对此进行测试,还要考虑文本大小的影响)。

5)当用户拖动特定字符(例如Z)时,需要从UILabel文本中删除该字符。

就这样,您完成了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接