2016-08-12 1 views
0

텍스트 안에 큰 텍스트와 이미지가있는 5 UIViewControllers 인 응용 프로그램을 만들어야합니다. 지금까지 내가 수행 한 작업은 UIViewControllerUITextView을 추가하고 전체 텍스트 (모든 텍스트가 큼)를 rtf 파일과 함께로드하는 것입니다.텍스트 내부에 이미지가있는 UIViewController 구성하기

이제 일부 장소의 텍스트 안에 이미지를 추가해야합니다. 그것을 구성하는 가장 좋은 방법은 무엇일까요? rtf 파일 안에 이미지를 추가하려고했지만 제대로 작동하지 않습니다. 텍스트가 너무 커서 텍스트를 직접 입력하여 추가하지 않으려했습니다. 또한 각 콘텐츠에 대한보기를 슬라이드하는 최상위 막대 메뉴가있어서 그 중 하나만 UITextView이 있어야했습니다. 나는 최선의 해결책을 찾고있다.

답변

2

UIWebView에서 이미지가 포함 된 텍스트를 HTML에 래핑하여로드하면 어떻게 될까요?

또한 빌드 단계에 JavascriptCore.framework를 추가하여이 신속한 또는 OBJ-C에서 처리 할 수있을 것입니다 자바 스크립트 콜백을 추가 할 수 있습니다

을 코드에 버튼을 추가

<button text="Close" onclick="javascript:callSwiftCode()">Call swift code</button> 

을 그리고 당신의 UIWebViewDelegate 클래스 :

func webViewDidFinishLoad(webView: UIWebView) { 
    let context: JSContext = webView.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as! JSContext 

    let codeClosure: @convention(block)()->() = {()->() in 
     print ("This is callback from javascript you can add your code in this closure") 
    } 

    let casted: AnyObject = unsafeBitCast(codeClosure, AnyObject.self) as AnyObject 
    context.setObject(casted, forKeyedSubscript: "callSwiftCode") 
} 
+0

아주 좋은 생각입니다. 당신의 응답을 주셔서 감사합니다. 하지만 한 가지 더. html 파일에 다른 이미지를 여는 버튼을 추가 할 수 있습니까? 그게 가능하니? – user3882720

+0

HTML에서 직접 가능해야합니다. 앱의 네이티브 코드에 적절한 후크를 갖고 싶다면'WKWebView'와'WKUserContentController'의'addScriptMessageHandler : name :'메소드를 사용하여 자바 스크립트 리스너를 설치하는 것이 좋습니다. – Gero

+0

예. 편집 된 게시물 –

0

NSAttributedStringNSTextAttachment를 사용하여 얻을 수 있습니다. 속성 문자열은 서식이 지정된 문자열 (굵게, 기울임 꼴, 색상 등)이지만 속성 문자열 내에 이미지를 첨부 할 수 있으며 텍스트와 함께 바로 그려집니다. 아래 예는 이해에 도움이 될 수 있습니다.

//Create a mutable attributed string so that we could append everything to it. 
let bigText = NSMutableAttributedString(string: "Your text starts here") 

//Create a NSTextAttachment 
let image1Attachment = NSTextAttachment() 
image1Attachment.image = UIImage(named: "image1.png") 

// wrap the attachment in its own attributed string so we can append it 
let image1String = NSAttributedString(attachment: image1Attachment) 

// add the NSTextAttachment wrapper to our full string, then add some more text. 
bigText.appendAttributedString(image1String) 
bigText.appendAttributedString(NSAttributedString(string: "End of text")) 

// Then set this bigText to your label's attributedText property. 
yourLabel.attributedText = bigText 
+0

그래도 여전히, 전체 텍스트를 (string : "") 안에 입력해야합니다. 그리고 내 텍스트가 너무 큽니다. – user3882720