UITextView 콘텐츠 삽입
contentInsets에 약간 이상한 것이 있습니다.
uitextview에 패딩을 추가하려고하므로 contentInset이 50 인 UITextView가 스토리 보드에 있습니다.
그러나이 테스트에서 아래와 같이 스크롤바가 uitextview의 맨 아래에 나타납니다.
나는 contentInset이 수평 스크롤 바를 일으키지 않고 uitextview를 스쿼시한다는 인상을 받았습니다. 그래서 수평 스크롤바의 필요성을 제거하고 uitextview의 삽입 및 모든 텍스트를 필요없이 보이게 만들 수있는 방법은 무엇입니까? 스크롤 바.
NB : 가로로 스크롤하는 것을 방지하거나 스크롤바를 표시하지 않는 것에 대해 묻지 않습니다 (따라서 텍스트가 잘림).
감사합니다!
atomk (UITextView는 ss라고 함)
NSLog(@"Content Size Before %f",self.ss.contentSize.width); Logs: 280
CGSize size=self.ss.contentSize; size.width=size.width-50;
[self.ss setContentSize:size];
NSLog(@"Content Size After %f",self.ss.contentSize.width); Logs: 230
코드가 추가 된 뷰가 추가되기 전과 는 눈에 띄는 차이 가 없으므로 문제가 발생합니다! (감사)
업데이트 :이 솔루션은 iOS 7에서 구식입니다.
아래 답변을 참조하십시오 . iOS 7.0에서는의 textContainerInset
속성 UITextView
이 도입되었습니다.
textView.textContainerInset = UIEdgeInsetsMake(0, 50, 0, 0);
iOS 7 이전 솔루션 :
나는 contentInset 이이 수평 스크롤 막대를 일으키지 않고 uitextview를 스쿼시한다는 인상을 받았습니다 ...
나는이 방법 아니다 두려워 contentInset
와 함께 작동합니다 UITextView
. 다음과 같은 내용은 Apple의 설명서 를 참조하십시오 contentInset
.
둘러싼 스크롤보기에서 콘텐츠보기가 삽입 된 거리 ... 콘텐츠 주변의 스크롤 영역에 추가하려면이 속성을 사용합니다.
이 contentInset
되는 추가 내용 주위에.
위에 포함 된 코드를 사용 하여 contentSize
in viewDidLayoutSubviews
을 변경할 수 있습니다 .
- (void)viewDidLayoutSubviews
{
self.textView.contentInset = UIEdgeInsetsMake(0, 50, 0, 0);
NSLog(@"Content Size Before %f",self.textView.contentSize.width); //Logs: 280
CGSize size=self.textView.contentSize;
size.width=size.width-50;
[self.textView setContentSize:size];
NSLog(@"Content Size After %f",self.textView.contentSize.width); //Logs: 230
}
그러나 이로 인해 오른쪽에서 텍스트가 잘립니다.
내가 가로 패딩의 모양을 얻을 수 있었던 가장 좋은 방법 UITextView
은 컨테이너 안에 배치하는 것 UIView
입니다. 귀하의 경우에는 UIView
현재 텍스트보기와 동일한 크기를 만들고 컨테이너보기 내에 50px 더 좁은 텍스트보기를 추가하기 만하면 됩니다.
이 해결 방법은 텍스트보기에 대한 배경이있는 경우 문제를 일으킬 수 있지만 위의 스크린 샷에서는 문제가되지 않는 것 같습니다.
UITextView
(빨간색 프레임) UIView
컨테이너 내부 :
UITextView
배경이있는 경우 다음을 참조하십시오.
- Notes App과 같은 UITextView의 콘텐츠 삽입 설정 방법
- 리버스 엔지니어링 Notes.app에서 배운 내용 ( "iPadding"섹션 참조)
도움이 되었기를 바라며 누구든지 더 나은 솔루션을 찾을 수 있다면 그것에 대해 듣고 싶습니다!
iOS 7에서는 UITextView
TextKit을 기반으로하며 새로운 속성이 textContainerInset
있습니다. 예상대로 작동합니다.
UITextView *textView = ...;
// Left inset of 50 points
textView.textContainerInset = UIEdgeInsetsMake(0.0, 50.0, 0.0, 0.0);
참고 URL : https://stackoverflow.com/questions/18560412/uitextview-content-inset
'UFO ET IT' 카테고리의 다른 글
배경으로 드로어 블 모양, 하단에 선 (0) | 2020.12.13 |
---|---|
Android-XML의 플립 이미지 (0) | 2020.12.13 |
UINavigationController 뒤로 버튼 이름을 변경하는 방법은 무엇입니까? (0) | 2020.12.13 |
JQuery, 값이 배열에 존재하는지 확인 (0) | 2020.12.13 |
Facebook SDK에서 오류를 반환했습니다. 교차 사이트 요청 위조 유효성 검사에 실패했습니다. (0) | 2020.12.13 |