gpt4 book ai didi

iphone - UITextView 文字垂直对齐

转载 作者:可可西里 更新时间:2023-11-01 06:15:56 26 4
gpt4 key购买 nike

我创建了自定义 UITextView 类,其中 textView 会随着用户键入字符而动态增长,而 textview 框架会动态调整大小。我想将文本在框架中垂直居中对齐,默认情况下它始终位于底部.我添加了 UIEdgeInsets 来制作或看起来像它进入中心,但它给我带来了更多问题。如果我尝试设置内容偏移量,那么 textView 中心也会移动。是内容偏移量和 textView 中心效果彼此?。我希望 textview 居中,但 textView 内的文本保持垂直居中。最初我将 UITextView 字体 23.0 设置为矩形边框(textview 框架图层边框)。当我开始在该框中键入文本时,文本位于边框底部。然后我正在使用

[textView setContentInset:UIEdgeInsetsMake(5,0,10,0)]; 

使文本居中。然后我必须发送这个放置在 UIImageView 上的文本进行打印。这里我使用 Paras 提到的代码来匹配打印机 dpi 并调整它的大小。但是 UIImageview 上看起来的文本与打印的确切位置不匹配,因为我添加了 UIEdgeInset 来调整垂直对齐方式

最佳答案

我有两种类型可以为 UITextView 设置动态高度,看到两者都在下面...

更新:

首先像下面这样以编程方式创建 UITextView...

-(IBAction)btnAddTextView:(id)sender
{
UIView *viewTxt = [[UIView alloc]initWithFrame:CGRectMake(imgBackBoard.center.x - 100,20, 220, 84)];
[viewTxt setBackgroundColor:[UIColor clearColor]];
viewTxt.userInteractionEnabled = YES;

UITextView *txtAddNote=[[UITextView alloc]initWithFrame:CGRectMake(20,20, 180, 44)];
[txtAddNote setBackgroundColor:[UIColor scrollViewTexturedBackgroundColor]];
[txtAddNote setFont:[UIFont fontWithName:@"Helvetica-Bold" size:15]];
txtAddNote.layer.borderWidth = 2.0;
txtAddNote.layer.borderColor= [UIColor redColor].CGColor;
viewTxt.tag = 111;
txtAddNote.tag = 111;
txtAddNote.userInteractionEnabled= YES;
txtAddNote.delegate = self;
txtAddNote.textColor = [UIColor whiteColor];
[viewTxt addSubview:txtAddNote];
[viewBoard addSubview:viewTxt];
[txtAddNote release];

}

首先

1.下面的方法是UITextViewDelegate的委托(delegate)方法。

.h 类中添加此 UITextViewDelegate,然后将您的 textView.delegate 提供给 self,如下所示。 .

yourTextView.delegate = self;

并使用粘贴此波纹管方法...

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, textView.frame.size.width, textView.contentSize.height);
return YES;
}

这里当你的 UITextView 一次编辑它的文本时,textView 的内容大小会改变。

2. 使用我的自定义方法设置UILableUITextFieldUITextView 的动态高度/p>

-(float) calculateHeightOfTextFromWidth:(NSString*) text: (UIFont*)withFont: (float)width :(UILineBreakMode)lineBreakMode
{
[text retain];
[withFont retain];
CGSize suggestedSize = [text sizeWithFont:withFont constrainedToSize:CGSizeMake(width, FLT_MAX) lineBreakMode:lineBreakMode];

[text release];
[withFont release];

return suggestedSize.height;
}

像下面这样使用这个方法...

CGSize sizeToMakeLabel = [yourTextView.text sizeWithFont:yourTextView.font]; 
yourTextView.frame = CGRectMake(yourTextView.frame.origin.x, yourTextView.frame.origin.y,
sizeToMakeLabel.width, sizeToMakeLabel.height);

关于iphone - UITextView 文字垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com