기존에 초기 메시지로 보내거나 끌 경우에만 스티커가 대화 (에 나타나는 크기에 영향을 미칠 것이다, 최대 300x300에서 408x408 또는 618x618을 이미지를 가져 오기 .. 메시지 거품 이미지의 크기를 변경하면
가 StickerBrowserView에서 그리드 레이아웃을 변경하려면이 그리드 레이아웃의 방향에의 영향을받지 않습니다 당신은 그것을 할 수있는 두 가지 방법 중 하나를
,691,363 StickerPack 폴더에210
클릭이 강조 (또는 팩의 모든 스티커를 선택) 한 다음에 속성 관리자의 드롭 다운 메뉴에서 "스티커 크기"옵션을 변경할 수 있습니다되도록 (2 열), 중간 (3 열) 또는 큰 (4 열) 중에서 원하는 프리젠 테이션 스타일의 오른쪽을 선택합니다. 그게 다야! 이렇게하면 모든 스티커가 레이아웃에이 방식으로 표시됩니다. 어떤 크기의 이미지를 가져 오든 앱은 선택한 레이아웃에서 사용할 수 있도록 올바른 크기로 스케일 업합니다.
는 "메시지 응용 프로그램"을 선택한 후 스티커를 저장하는 배열을 생성, MSStickerBrowserViewController을 하위 클래스 새 파일을 만들 때 새 프로젝트를 설정,로드/먼저 만들
스티커 (각 스티커 배열에 저장하는 동안) 및 MSStickerBrowserViewController의 2 가지 필수 데이터 소스 메서드를 구현해야합니다. 이를 위해 이미지를 Extensions 디렉토리로 드래그하면됩니다.
SubclassFile.Swift
당신의 MessagesViewController에서
import UIKit
import Messages
class MyBrowserVC: MSStickerBrowserViewController {
//create stickers array
var stickers = [MSSticker]()
//load assets into stickers array
func loadStickers() {
createSticker(asset: "boycott", localizedDescription: "boycottSticker")
createSticker(asset: "alluminaughty", localizedDescription: "alluminaughtySticker")
createSticker(asset: "beer", localizedDescription: "beerSticker")
}
//func to create sticker
func createSticker(asset: String, localizedDescription: String) {
//create url from assets in main bundle
guard let stickerPath = Bundle.main.path(forResource: asset, ofType: "png") else {
print("Couldn't create sticker path for", asset)
return
}
let stickerURL = URL(fileURLWithPath: stickerPath)
let sticker: MSSticker
//create sticker from path(and localized description) and add to array
do {
try sticker = MSSticker(contentsOfFileURL: stickerURL,
localizedDescription: localizedDescription)
stickers.append(sticker)
} catch {
print(error)
return
}
}
//datasource methods
override func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int {
return stickers.count
}
override func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView,
stickerAt index: Int) -> MSSticker {
return stickers[index]
}
}
, 서브 클래스에서 BrowserVC의 인스턴스를 생성 (새 프로젝트를 시작할 때 자동으로이 있어야한다), 설정 스티커 크기, browserVC 프레임, 전면에있는 하위 뷰를 추가, 브라우저보기에 스티커를로드하십시오.
MessageViewController.swift
import UIKit
import Messages
class MessagesViewController: MSMessagesAppViewController {
//create BrowserVC instance of Subclass
var browserVC: MyBrowserVC!
override func viewDidLoad() {
super.viewDidLoad()
//the next line of code is where you can adjust the "grid layout"
//your options are: .small(2 columns), .regular(3 columns), or .large(4 columns)
//instantiate browserVC with sticker size and set frame
browserVC = MyBrowserVC(stickerSize: .regular)
browserVC.view.frame = self.view.frame
//send browserVC to front
self.addChildViewController(browserVC)
browserVC.didMove(toParentViewController: self)
self.view.addSubview(browserVC.view)
//load stickers onto the browser view
browserVC.loadStickers()
browserVC.stickerBrowserView.reloadData()
}
}
더 나은 정보를 위해, 스티커에 WWDC video 발표 작년에 체크 아웃! 이것이 내가 스티커를 만드는 것을 배우기 시작한 곳이며, 그 다음에 문서를 올려 놓으십시오!
동일한 문제가 발생하지만 iPhoneSE가 있기 때문에 궁금합니다 (시뮬레이터에서 동일한 기능을 수행함) – jvcleave