2012-02-22 37 views
8

Làm cách nào để thêm đường viền màu đen vào văn bản UILabel trắng?Phác thảo cho văn bản không có nhãn

+0

kiểm tra điều này: http: //stackoverflow.com/a/1424665/845115 –

+0

bạn có nghĩa là viền đen không? – rakeshNS

+0

@rakeshNS vâng tôi muốn viền đen xung quanh văn bản của nhãn. – hgpl

Trả lời

9

Một tùy chọn là đặt bóng, có thể không chính xác những gì bạn muốn, nhưng đạt được hiệu ứng tương tự. Bạn có thể tự điều chỉnh offset:

UILabel *myLabel = ...; 
lbl.shadowColor = [UIColor whiteColor]; 
lbl.shadowOffset = CGSizeMake(0, -1.0); 

Xin lưu ý rằng bạn cũng có thể định nghĩa này trong giao diện Builder cho UILabel của bạn.

shadow http://i.minus.com/jbiG0jVdOxJbgh.png

Nếu đây là không đủ cho bạn kiểm tra blog post này mà giao dịch với subclassing UILabel để có được một hiệu ứng ánh sáng:

glow http://www.redrobotstudios.com/blog/wp-content/uploads/2010/04/glow1.png

+0

Thực hiện việc này theo cách này hoặc là thêm đường viền mờ hoặc đường viền/đường viền được bù đắp. Xem liên kết này để có giải pháp tuyệt vời: http://stackoverflow.com/a/15877054/254598 – Maurizio

2

Đối với iOS5, theo cách thông thường là sử dụng CoreGraphics để đặt fill/stroke và sau đó render đồ họa. Nó có thể khá khó khăn để có được sự liên kết chính xác cho tất cả các kích cỡ phông chữ mặc dù.

Tôi khuyên bạn nên xem giải pháp của mình here. Bạn có thể sử dụng nó trực tiếp (nó cũng có bóng khuếch tán), hoặc đơn giản là chọn ra mã có viền. Đối với iOS6 có một giải pháp neater (nhỏ hơn) hoạt động tốt hơn. Hãy xem here.

+1

iOS6 hiện đã hết, bạn có thể cho chúng tôi biết về giải pháp neater không? Tôi không thể hiểu được. –

+0

Có @Nuoji, tôi cũng muốn biết về giải pháp iOS 6 đó. – flainez

+0

Như bạn đã thấy tôi đã cập nhật câu trả lời của mình với một liên kết đến giải pháp iOS 6. – Nuoji

1

Tôi chắc chắn this mã sẽ giải quyết được sự cố của bạn.

Trong lớp KSLabel.m thấy dòng mã này

// Outline color 
self.textColor = [UIColor whiteColor]; 

thay đổi nó để

self.textColor = [UIColor blackColor]; 

và bạn sẽ thấy những viền đen của văn bản.

5

Tiết lộ: Tôi là nhà phát triển của THLabel.

Tôi đã phát hành một lớp con UILabel một lúc trước, cho phép phác thảo văn bản và các hiệu ứng khác. Bạn có thể tìm thấy ở đây: https://github.com/tobihagemann/THLabel

Tôi đang sử dụng Đồ họa cốt lõi và Đồ họa cốt lõi để đạt được hiệu quả.

+1

Chỉ cần cài đặt nó, hoạt động hoàn hảo cho đến nay, cũng được thực hiện. – TaylorAllred

Các vấn đề liên quan