iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 使用autolayout,当我更改标签文本时,标签位置会重置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在Objective-c中开发一个非常简单的应用程序. 在应用程序中,用户可以通过拖动屏幕来更改标签的位置. Tap&拖动屏幕,标签上下移动以匹配手指的位置. 松开手指时,标签的坐标信息将设置为其文本. 但标签位置在文本更改时重置. // IBOutlet UILabel *label - (void) touchesBegan:(NSSet *)touches withEvent:(UIE
我正在Objective-c中开发一个非常简单的应用程序.
在应用程序中,用户可以通过拖动屏幕来更改标签的位置.

Tap&拖动屏幕,标签上下移动以匹配手指的位置.
松开手指时,标签的坐标信息将设置为其文本.

标签位置在文本更改时重置.

// IBOutlet UILabel *label

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGPoint touch = [[touches anyObject] LOCATIOnInView:self.view];
    label.center = CGPointMake(label.center.x,touch.y);
}

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGPoint touch = [[touches anyObject] LOCATIOnInView:self.view];
    label.center = CGPointMake(label.center.x,touch.y);
}

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGPoint touch = [[touches anyObject] LOCATIOnInView:self.view];
    label.text = [NS@R_772_10495@ng @R_772_10495@ngWithFormat:@"y = %f",touch.y];
}

在touchesEnded事件中,只需更改标签的文本,
但它的位置已经重置.

我试图改变touchesEnded事件如下,但它没有解决问题.

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGPoint touch = [[touches anyObject] LOCATIOnInView:self.view];
    label.text = [NS@R_772_10495@ng @R_772_10495@ngWithFormat:@"y = %f",touch.y];
    label.center = CGPointMake(label.center.x,touch.y);    // add this line
}

我想在不取消选中“使用自动布局”的情况下解决这种奇怪的行为.
我想继续使用自动布局.

我的应用程序有4个截图.

4 Screenshots

>第一张图片是故事板.
我有一个带有自动布局约束的标签.
>第二张图片是启动应用程序后的屏幕截图.
>第三个图像是用户拖动屏幕时,
并且标签向下移动以匹配手指.
>释放手指后,第四张图像就出现了
标签文字已更改.

解决方法

你不能使用自动布局和改变事物的中心/框架;那些是对立的.做一个或另一个 – 不是两个.

因此,您不必关闭自动布局,但@R_864_7724@,则必须使用自动布局和自动布局来定位.

移动标签时,请勿更改其中心 – 更改其约束.或者至少,改变了它的中心,改变其约束以匹配.

否则,当布局发生时,约束会将它放回到您告诉它们放置它的位置.当您更改文本时,以及在许多其他时间,布局确实会发生.

大佬总结

以上是大佬教程为你收集整理的objective-c – 使用autolayout,当我更改标签文本时,标签位置会重置全部内容,希望文章能够帮你解决objective-c – 使用autolayout,当我更改标签文本时,标签位置会重置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。