Xcode 10 - ký tự hình ảnh không còn nữa


93

Ghi chú phát hành Xcode 10: "Hoàn thành mã cho các ký tự hình ảnh Swift đã bị xóa trong Xcode 10"

Vì vậy, không phải là một lỗi mà tôi không thể thêm hình ảnh trong mã (và chạy các dự án cũ hơn). Làm thế nào để chúng tôi thêm hình ảnh từ bây giờ trở đi trong mã vì chỉ cần nhập UIImageView(image:sẽ không chấp nhận bất kỳ png hoặc jpeg nào.

let cellImage: UIImageView = {
    let image = UIImageView(image: ???))

    return image
}()

Hệ thống: macOS Mojave
Xcode: Xcode 10 Beta 4


UIImage(named: "myImage")như trong các ngươi lần olde (?)
Alladinian

Đáng chú ý: Chỉ hoàn thành mã cho các ký tự hình ảnh đã bị loại bỏ . Bản thân các ký tự hình ảnh tiếp tục hoạt động tốt trên XCode 10 với Swift 4.2.
iSofia

@isofia không, họ không làm vậy vì bạn không thể tạo.
matt,

3
đây là bất hạnh, hoàn thành nghĩa đen hình ảnh là một tính năng tuyệt vời
Eric Armstrong

2
Có thể có các đề xuất Hình ảnh
JD.

Câu trả lời:


119

Trong Xcode 10 và Swift 4.2 , chỉ có chức năng hoàn thành mã (hoặc tự động hoàn thành) của Xcode IDE đã bị ngừng theo cách cũ. Đây là cách mới:

Chỉ cần nhập image literalvà nó sẽ hoàn thành với biểu tượng mặc định.

nhập mô tả hình ảnh ở đây

 

Nhấp đúp vào biểu tượng này và nó sẽ mở thư viện phương tiện ở phía bên phải của nó.

nhập mô tả hình ảnh ở đây

 

Chỉ cần chọn hình ảnh của bạn và nó hoạt động như trước đây!

nhập mô tả hình ảnh ở đây


62
Không thể tìm thấy hình ảnh theo tên theo cách này. Và nhà thiết kế của tôi đã cho tôi tất cả các tài sản dưới dạng png trắng trong suốt, vì vậy tất cả các hình thu nhỏ được hiển thị dưới dạng màu trắng tinh khiết theo một thứ tự ngẫu nhiên ... hình ảnh nào để chọn là nhiệm vụ bất khả thi. -_-
Cœur

2
Hi Coeur, xin vui lòng, hãy cho thiết kế của bạn để đặt tất cả các hình ảnh trên màu xám, sau đó bạn thay đổi tài sản của bạn để mẫu, và sau đó bạn có thể nhuộm màu nó trên Storyboard hoặc mã :)
Daniel Arantes Loverde

Dưới đây là bình thường, nhấn đúp chuột mở danh sách
Daniel Arantes Loverde

@ Chúng tôi không phải là không thể nhưng nó khó, nếu bạn thực hiện dự án, #imageLiteral chỉ là biểu diễn đồ họa của chuỗi được mã hóa, giúp nó có thể tìm kiếm được bằng find (#imageLiteral trong thư mục hiện tại của bạn) :)
Dominik Bucher

@DominikBucher đã hai năm và bây giờ tôi đang sử dụng Xcode 12, vì vậy quy trình là sử dụng + + Lhoặc nút + ở trên cùng bên phải của Xcode.
Cœur

98

Tìm thấy Lối tắt để mở Tab Thư viện Phương tiện:

+ +M

Tại thời điểm này, tài liệu chính thức không đề cập đến một số trường hợp sử dụng ở phiên bản Xcode 10 beta nên tôi không thể tìm cách di chuyển phần phương tiện về vị trí cũ.


7
Thật tệ, tôi không thể gõ enter để chèn một mục. Tôi phải sử dụng con trỏ chuột để kéo các mục vào mã -.-
fl034

4
Thư viện phương tiện không chèn một ký tự hình ảnh thích hợp, mặc dù ... nó đặt trong 3 ký tự hình ảnh đề cập đến 3 độ phân giải hình ảnh khác nhau.
Joshua Sullivan

Nếu bạn xóa hai đầu tiên, nó vẫn hoạt động. Thật lộn xộn, Apple.
CIFilter

51

Bạn có thể sử dụng Thư viện phương tiện trong Xcode để thêm ký tự hình ảnh vào mã của mình:

Hiển thị thư viện phương tiện XCode

Và sau đó chọn hình ảnh từ thư viện và kéo và thả nó vào mã của bạn

Chọn hình ảnh từ thư viện

Nó sẽ tạo ra hình ảnh theo nghĩa đen


Cảm ơn! Đối với những người khác: trong ảnh chụp màn hình đầu tiên, biểu tượng LEFTMOST được nhấn {}
xaphod

3
thú vị là điều này đã tạo ra các ký tự hình ảnh không hợp lệ cho tôi khi sử dụng tài nguyên pdf, dẫn đến sự cố thời gian chạy - trong bản dựng GM.
David Ganster

15
Điều này tạo ra một đen cho mỗi @1x, @2x@3xtài sản và do đó không biên dịch
Zappel

2
Nghiêm túc thì cái này phải hoạt động như thế nào? Không có cách nào để kéo và thả một biểu diễn của cả ba độ phân giải? Đây dường như là một sự giám sát rất lớn của Apple.
aBikis 14/10/18

28

Vì lợi ích của những người khác sử dụng mã kế thừa tạo ra Swift Image Literals, bản thân mã và cú pháp của hàm hình ảnh vẫn hợp lệ và hoạt động hoàn toàn tốt trong Xcode 10 với Swift 4.2.

Không cần phải khôi phục hoặc cấu trúc lại mã hiện có để tạo ra các ký tự hình ảnh này và chúng vẫn có thể được sử dụng như sau:

imageView.image = #imageLiteral(resourceName: imageNameString)

Chỉ có chức năng hoàn thành mã (hoặc tự động hoàn thành) của Xcode IDE đã bị ngừng hoạt động.


CẬP NHẬT

Sự khác biệt trong biểu diễn hình ảnh-chữ trong các phiên bản trước và hiện tại hoặc Xcode / Swift:

image = #imageLiteral(resourceName: "flower.jpg")

image = #imageLiteral (resourceName: "flower.jpg")

Như phần trích xuất minh họa, các ký tự hình ảnh được thể hiện cùng dòng với hình thu nhỏ của hình ảnh thực tế của chúng. Tuy nhiên, hiện tại, chỉ có một biểu tượng chung chung được sử dụng thay thế cho nó. Có lẽ, điều này hướng tới việc giảm bớt gánh nặng cho IDE, bằng cách loại bỏ các chi phí xử lý và hiển thị các hình thu nhỏ trong dòng.


2
Chúng ta có biết tại sao Apple lại loại bỏ điều này không? Các chữ hình ảnh có bị giảm giá trị trong tương lai không?
Bryan Hill

@BryanHill Không có lời giải thích nào mà tôi biết. Nhưng tôi đã cập nhật câu trả lời của mình, ở trên, với một dự đoán tốt nhất.
iSofia

Tôi đã đánh dấu điều đó khi bạn sẽ thấy biểu tượng chung thay thế cho hình ảnh. thì ứng dụng của bạn sẽ bị treo ở nơi đó.
Badal Shah

Bằng cách nào đó, tôi đột nhiên nhận được hình thu nhỏ hiển thị nội dòng khi tôi chọn dòng chứa nó (Xcode 10.0 (10A255)).
fl034

2
Tôi nghĩ đó chỉ là một lỗi
Reid Ellis

18

MẸO: Để sửa ba độ phân giải sau khi thêm hình ảnh chữ vào mã.
1. Loại bỏ một hình ảnh khác, chỉ giữ lại một hình ảnh
2. Nhận xét mã dòng của bạn bằng hình ảnh chữ, sau đó sẽ xuất hiện hình ảnh chữ trong mã, như: #imageLiteral(resourceName: "image@2x.png"
3. về resourceNamegiá trị, loại bỏ @2xvà phần mở rộng tệp, như .png, chỉ giữ lại tên hình ảnh: #imageLiteral(resourceName: "image")
4. Bỏ chú thích! Hình ảnh sẽ được hiển thị trong mã.


4
Cảm ơn. Thật là một hoành literals ảnh dumpster lửa XCode đang ở mo
xaphod

1
(Tôi chỉ thích raging dumpster fire;)).
Chris Prince

Cảm ơn, đây là một cách tốt để thực sự có thể sử dụng image name(nhưng vẫn giữ nó dưới dạng hình ảnh theo nghĩa đen) thay vì phải chọn từ bộ chọn.
angtlin

7

Trong Xcode 11, thư viện phương tiện hiện nằm trong Xem> Hiển thị Thư viện (SHIFT + CMD + L).


6

Nếu bất kỳ ai sử dụng Xcode 11 thì bạn có thể tìm thấy tất cả phương tiện bằng tùy chọn bên dưới:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


Nhưng điều này chỉ chèn đường dẫn đến hình ảnh?
Ixx

Vâng, đường dẫn chỉ chèn của nó nhưng đây là cách bạn có thể kiểm tra tất cả các ký tự của hình ảnh
guru

2
  • sử dụng UIImage (imageLiteralResourceName: 'imageName') sẽ không trả về tùy chọn và hoạt động tốt

0

tôi đang sử dụng Xcode 10 beta 4 và tôi gặp vấn đề tương tự! Đã giải quyết bằng cách cũ để chuyển một hình ảnh

PizzaModel(
            nome: "Marinara",
            ingredienti: "Pomodoro, Aglio",
            calorie: "729",
            img: UIImage(named: "marinara")!
)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.