美文网首页iOS企业级开发实用技术
UITextView 字体垂直居中水平居中显示

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

作者: 代码干货 | 来源:发表于2016-03-03 14:53 被阅读6126次

<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>

相关文章

网友评论

本文标题:UITextView 字体垂直居中水平居中显示

本文链接:https://www.haomeiwen.com/subject/ymtokttx.html