在按下按钮时调整UiTextField / UiTextView的大小以适合内容

时间:2014-04-10 17:05:18

标签: ios objective-c uitextfield uitextview

我一直在寻找几个小时,我找不到任何解决方案。

我想创建一个UITextField或UITextView(不关心任何一个工作)显示单词 “联系人...”在一行中,然后当我按下按钮时,文本字段应该增长以适应所有内容。理想情况下,我希望将视图中的所有组件向下移动以适应更大的文本字段。

我在大量的应用程序中看到过这种技术,但我找不到解决方案!必须有一些带有UITextField的GitHub库具有这种行为。

请帮忙!

1 个答案:

答案 0 :(得分:0)

我有一段时间有类似的需求,并提出了一个类别来支持每个UITextView的大小调整。只需将此类别添加到您的项目中,然后将其导入到您需要的课程中,并在想要调整其大小时调用autoAdjustHeight上的UITextView

的UITextView + Resizeable.h:

@interface UITextView (Resizeable)

-(void)autoAdjustHeight;

@end

的UITextView + Resizeable.m:

#import "UITextView+Resizeable.h"

@implementation UITextView (Resizeable)

-(void)autoAdjustHeight {

    CGFloat fixedWidth = self.frame.size.width;
    CGSize newSize = [self sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
    CGRect newFrame = self.frame;
    newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
    self.frame = newFrame;
    self.scrollEnabled = NO;
}

@end