2016-02-24 59 views
6

Tôi đang tìm cách tốt nhất để tạo một mũi tên xuống (dấu mũ?) Ở phía bên tay phải của một UILabel trong một giao diện được căn giữa trong một UINavigationItem.Làm thế nào để thực hiện một mũi tên xuống/dấu mũ (như trong ứng dụng iOS 9 Music) trong một dự án iOS Swift?

enter image description here

enter image description here

Toàn bộ điều nên trông giống như arow xuống trong ứng dụng Nhạc iOS 9. Các văn bản của nhãn sẽ thay đổi trong thời gian chạy và tiêu đề/nội dung của nhãn bao gồm mũi tên nên được tập trung như trong ảnh chụp màn hình này:

Screenshot of Music app on IOS 9.2

Hiện nay tôi thêm một nhân vật \u{25BE} ở phần cuối của văn bản như này:

self.lblSelectedAlbum.text = self.lblSelectedAlbum.text! + " \u{25BE}" 

Nhưng điều này có một số tác động tiêu cực:

  1. Nó trông giống một cluncky
  2. Nếu văn bản nhãn quá dài, mũi tên xuống sẽ biến mất

Bất kỳ ý tưởng nào về cách thực hiện điều này tốt nhất? Cảm ơn!

Trả lời

3

Tôi đề xuất sử dụng phông chữ bên ngoài trong văn bản được phân bổ. Một ví dụ: Font Awesome của góc xuống và chevron xuống.

enter image description here

Nếu bạn chuyển sang một cái nhìn văn bản, bạn có thể thiết lập insets như

myTextView.edgeInsets:UIEdgeInsetsMake(0, 10, 0, 0)]; //Replace 10 with the actual width that will center it. 

Bạn cũng có thể phân lớp UILabel để sửa đổi cách nó thu hút như trong this ví dụ.

+0

OK, vì vậy tôi đã cài đặt FontAwesome và quản lý để thêm nhãn thứ hai có ký tự góc xuống ở bên phải của "Blog được chọn Lbl". Tôi đặt các ràng buộc sao cho các cạnh bên phải của cả hai nhãn căn chỉnh với mũi tên có giá trị âm. Điều gì xảy ra bây giờ là mũi tên nằm ở bên phải cực của thanh tiêu đề trong khi văn bản được căn giữa. Tôi muốn mũi tên dính vào phía bên tay phải của văn bản tiêu đề. Tôi không thể sửa lỗi này với các giá trị tuyệt đối khi văn bản tiêu đề thay đổi động. Ý tưởng nào? Cảm ơn! – Georg

+0

Hmm .. Bạn đã thử đề xuất sử dụng một nhãn chưa? Bạn có thể đặt nó thành văn bản được phân bổ và có hai phông chữ trong cùng một nhãn. –

+1

Cảm ơn, điều đó đã xảy ra. Tôi muốn thêm bài viết hữu ích này về việc tạo NSAttributedStrings trong Swift làm tham chiếu: http://stackoverflow.com/questions/24666515/how-do-i-make-an-attributed-string-using-swift – Georg

0

Một cách khác để nút người dùng và đặt văn bản bạn muốn đặt và văn bản bạn đặt hình ảnh nút thành mũi tên xuống. nếu cần thiết lập vị trí của hình ảnh nút và tiêu đề nút hơn là sử dụng EdgesInset hình ảnh và tiêu đề. Tôi hy vọng điều này là hữu ích cho bạn. Cảm ơn

2

Đây là mã unicode: \ u {2304}

Trong ngữ cảnh trông như thế này. Tránh phiền phức khi tải xuống phông chữ mới.

let workout = NSMutableAttributedString(string: "Workout", attributes: [NSFontAttributeName: UIFont(name: "Verdana", size: 14)!]) 
    let arrow = NSMutableAttributedString(string: "\u{2304}", attributes: [NSFontAttributeName: UIFont(name: "Verdana", size: 37)!]) 

    let combination = NSMutableAttributedString() 
    combination.append(workout) 
    combination.append(arrow) 

    sender.setAttributedTitle(combination, for: .normal) 
Các vấn đề liên quan