我尝试对齐UITextView的文本。我的文本视图位于单元格中。 Using this link by stackoverflow我试图调整文字。我在TableViewCell类中完成了它,如下所示,
- (void)awakeFromNib {
[self.postedText addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:NULL];
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
UITextView *txtview = object;
CGFloat topoffset = ([txtview bounds].size.height - [txtview contentSize].height * [txtview zoomScale])/2.0;
topoffset = ( topoffset < 0.0 ? 0.0 : topoffset );
txtview.contentOffset = (CGPoint){.x = 0, .y = -topoffset};
}
当我运行此操作时,我收到以下错误。
observeValueForKeyPath:ofObject:change:context:收到消息但未处理。 关键路径:contentSize 观察对象:; layer =; contentOffset:{0,0}; contentSize:{256,204}&gt; 变化:{ kind = 1; new =&#34; NSSize:{256,204}&#34 ;; } 上下文:0x0&#39; ***第一次抛出调用堆栈: (0x1821a02d8 0x1939740e4 0x1821a0218 0x183075d44 0x182fc95c4 0x182fc90e4 0x182fb288c 0x187315944 0x186c8f024 0x186bdd760 0x186525e1c 0x186520884 0x186520728 0x18651febc 0x18651fc3c 0x186c63f90 0x186c63ef4 0x1821582a4 0x182155230 0x182155560 0x1820812d4 0x18b89f6fc 0x186c46fac 0x100060414 0x193ff2a08) libc ++ abi.dylib:以NSException类型的未捕获异常终止
我该如何解决这个问题?
答案 0 :(得分:0)
您如何知道self
会持续存在?我认为这是一个表格单元格;他们来去匆匆。在KVO中将表格单元格设置为观察者是非常危险的(正如您刚刚发现的那样)。
一般来说,这种方法不会成立,因为观察者需要在观察者的生命之外持续存在,并且需要在观察者不存在之前用观察者注销自己。你无法做到这两件事。