在 addSubview 之后查看移动

Posted

技术标签:

【中文标题】在 addSubview 之后查看移动【英文标题】:View Moves After addSubview 【发布时间】:2015-09-18 11:56:55 【问题描述】:

我有一个UIImageView,在它上面还有一个UITextView,我需要同时截取图像和文本的屏幕截图,为此我需要将文本放在UIImageView 内,所以我使用@ 987654324@.

问题是,当我使用 addSubview 时,textView 会向下和向左跳跃,并且不再位于 imageView 的顶部。

为什么会发生,我该如何解决?

【问题讨论】:

你是如何设置 textView 框架的? 您能出示您的代码吗?设置 UItextview 的框架可能有问题。请设置 textview 原点 (x,y) = (0,0) 【参考方案1】:

如果您的唯一目的是在图像上显示文本,那么您应该像这样使用UILabel

// Add image view
UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, myImage.size.width, myImage.size.height)];
[self.view addSubView:myImageView];

// Now lets add label
UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(myImageView.frame.origin.x + (myImage.size.width / 2), myImageView.frame.origin.y + (myImage.size.height / 2), 50, 15)];
test.text = @"Image Caption";
[self.view addSubview:testLabel];

基本规则是 UI 组件是逐层添加的,最后添加的组件位于该层的顶部,然后通过合并所有层得到最终的 UI。在这里,我只是在将带有中间框架的图像添加到图像后添加标签。希望你明白了。

【讨论】:

以上是关于在 addSubview 之后查看移动的主要内容,如果未能解决你的问题,请参考以下文章

使用addSubview将UIView移动到其他UIView中

UIScrollView 项目没有从后台移动

UIScrollView项目不从后台移动

IOS:查看翻译动画。正确的方式。

以编程方式使用约束 Swift 移动按钮

----移动端移动端调试神器vConsole----