UITextView 字体垂直居中水平居中显示

<pre>

import <UIKit/UIKit.h>

@interface TMVerticallyCenteredTextView : UITextView

@end
</pre>

<pre>

import "TMVerticallyCenteredTextView.h"

@interface TMVerticallyCenteredTextView()
@end
@implementation TMVerticallyCenteredTextView

  • (id)initWithFrame:(CGRect)frame
    {
    if (self = [super initWithFrame:frame])
    {
    self.textAlignment = NSTextAlignmentCenter;
    [self addObserver:self forKeyPath:@"contentSize" options: (NSKeyValueObservingOptionNew) context:NULL];
    }
    return self;
    }
  • (id)initWithCoder:(NSCoder *)aDecoder
    {
    if (self = [super initWithCoder:aDecoder])
    {
    self.textAlignment = NSTextAlignmentCenter;
    [self addObserver:self forKeyPath:@"contentSize" options: (NSKeyValueObservingOptionNew) context:NULL];
    }
    return self;
    }

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"contentSize"])
{
UITextView *tv = object;
CGFloat deadSpace = ([tv bounds].size.height - [tv contentSize].height);
CGFloat inset = MAX(0, deadSpace/2.0);
tv.contentInset = UIEdgeInsetsMake(inset, tv.contentInset.left, inset, tv.contentInset.right);
}
}

  • (void)dealloc
    {
    [self removeObserver:self forKeyPath:@"contentSize"];
    }
    </pre>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容