2012-12-17 26 views
5

Tôi đã thực hiện một dự án trước đây nơi tôi đặt UIButton để có cả văn bản và hình ảnh (trong trình tạo giao diện).iOS - Trình tạo giao diện: Tiêu đề UIButton biến mất khi thiết lập hình ảnh

Tôi đã tạo một dự án khác và tôi muốn đạt được điều tương tự, nhưng khi tôi đặt nút để có hình ảnh, tiêu đề biến mất (nó không bị ẩn đằng sau hình ảnh).

Tôi dường như không thể tìm ra lý do tại sao điều này là như vậy nếu có ai đó có thể làm sáng tỏ chủ đề này tôi rất cảm kích!

Cảm ơn.

Trả lời

19

Thay đổi nút của bạn thành loại tùy chỉnh. Đặt hình ảnh vào sau đó đặt văn bản vào.

Bạn sẽ cần phải đặt nền của riêng bạn trên đó, nhưng tại thời điểm đó bạn sẽ có thể sử dụng các cài đặt cạnh để định vị cả văn bản và hình ảnh.

Mọi nút mà tôi có với hình ảnh và văn bản đều được đặt thành tùy chỉnh và cuối cùng cũng có hình ảnh bg của riêng nó.

Ồ, một điều khác tôi sử dụng. Là cornerRadius. Để cung cấp cho xem các hiệu ứng tròn như các nút có theo mặc định.

saveButton.layer.cornerRadius = roundingNumber.floatValue; 

Bên cạnh đó bạn sẽ có thể sử dụng borderWidth và borderColor kết hợp với cornerRadius để có được một nút trông khá giống với nút gốc

saveButton.layer.borderRadius = 1.0f; 
saveButton.layer.borderColor = [[UIColor blueColor] CGColor]; 
// These are not the exact values (or maybe they are) but you get the idea. 

hy vọng rằng sẽ giúp.

Correction

Sau Dành một ít thời gian điều tra, dường như khi bạn đặt một hình ảnh trong nút. văn bản được đẩy ra bên phải.

Sử dụng cài đặt cạnh để đưa nó trở lại hình ảnh.

Với nút chọn, Nhìn vào "Thuộc tính Inspector"> Button> Cạnh> (Dropdown "Title")

equasion tôi đã đưa ra là

[Edge inset for Title] Left = -(imageWidth * 2) 

này nên Canh lề trái của bạn tiêu đề có hình ảnh mà bạn đã đặt.

Việc định vị tùy chỉnh sẽ cần phải được thực hiện để làm cho nó trông chính xác.

này có thể được thực hiện hoàn toàn trong Interface Builder và bạn có thể sử dụng RoundedRect nút phong cách

Dưới đây là một số hình ảnh chứng minh sự thay đổi.

Ở đây tôi đặt loại Nút thành "Tùy chỉnh" để xóa đường viền và nền.

Custom was set

Ở đây tôi đặt Top và Left trong tập Edge cho "Title" (Tiêu đề là một lựa chọn trong danh sách thả xuống)

Left and Top was set

EDIT

Mới nhất Xcode đã chuyển cài đặt kích thước sang vị trí mới

enter image description here

+0

Tôi nghĩ đây là câu trả lời đúng. Và đừng quên sử dụng setImage: forState và setTitle: forState. – AntonPalich

+0

không hoạt động đối với tôi. – jonypz

+0

Đã thêm cho bạn một số trợ giúp trực quan. Hy vọng rằng sẽ giúp. –

0

Có vẻ như bạn đang đặt hình ảnh cho nút chứ không phải hình nền để đảo ngược điều đó.

+0

Tôi e rằng đó không phải là vấn đề trong trường hợp này. Tôi có thể làm cho nó có một hình ảnh làm nền và văn bản, nhưng tôi muốn có một nền, hình ảnh và văn bản. –

+0

Ồ tôi đã hiểu. Tôi sẽ khuyên bạn nên chỉ đặt một hình ảnh là một trong những phần. Vì vậy, có nền như một hình ảnh, đặt nút trên đầu trang và cũng có văn bản. – rooster117

3

Chỉ cần đặt hình ảnh vào trường nền thay thế. Bằng cách này, văn bản sẽ xuất hiện ở phía trước hình ảnh.

+0

Thao tác này cũng sẽ kéo giãn hình ảnh trên toàn bộ khung nút. – oarfish

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