2013-06-27 52 views
7

Tôi cần một cách để thay đổi phông chữ của UILabel bằng ... Tôi thấy nhiều cách để tạo hiệu ứng thay đổi kích thước phông chữ nhưng tôi cần một cách để thay đổi kiểu chữ đó (đậm < -> mỏng ví dụ)Phông chữ thay đổi kích hoạt của một nhãn UILabel

cảm ơn rất nhiều vì đã giúp đỡ!

Trả lời

9

Không có ánh xạ rời rạc (theo nghĩa toán học) giữa hai khuôn mặt phông chữ.

Nếu bạn có thể đi từ kích thước 10 đến kích thước 11 bằng cách dốc (10.1, 10.2, 10.3, ...) thì không có thứ gì như "45% giữa helvetica neue và helvetica neue bold".

Điều gần nhất bạn có thể làm là biến đổi giữa CGPath của các chữ cái riêng lẻ, nhưng điều đó liên quan đến một tác phẩm lớn với CoreText.

Trong khi đó, tôi chỉ khuyên bạn nên thực hiện một crossfade đơn giản.

Có thể trong tương lai (nháy mắt, nháy mắt) sẽ có một số khung công tác để giúp bạn thực hiện loại công việc này.

+0

Đó chính là câu trả lời tôi rất sợ ... :-) thanks anyway .. – Chiko

+0

câu trả lời pefect ... – sagarcool89

-1

Sử dụng uiview animateWithDuration. Bên trong khối thay đổi kiểu phông chữ (đậm)

0

Bạn có thể đặt kích thước mới và thực hiện thay đổi cho nhãn của mình sau khi hoạt ảnh như thế này.

[UIView animateWithDuration:0.9 animations:^{ 
     label.frame = (CGRect){ CGPointMake(51, 150), label.bounds.size }; 
    } completion:^(BOOL finished) { 
     label.font=[UIFont boldSystemFontOfSize:15]; 
     // etc. 
    }]; 

Tận hưởng !!

+0

Chẳng phải nó đã làm việc cho bạn? – AtWork

+2

Không thực sự .. tôi muốn tạo hiệu ứng chuyển tiếp phông chữ .. điều này chỉ thay đổi nó ở cuối hoạt ảnh. – Chiko

-2
if(font_index == 8) 
    font_index = 0; 

[UIView animateWithDuration:2 
         delay:0 
        options:UIViewAnimationOptionCurveLinear 
       animations:^{ 


        UIFont* newfont = Nil; 
        if(font_index % 2 != 0) 
        { 
         newfont = [UIFont fontWithName:self.fontNames[font_index] size:8]; 

        } 
        else 
        { 
         newfont = [UIFont fontWithName:self.fontNames[font_index] size:20]; 

        } 
        self.keyButton.titleLabel.font = newfont; 

       } 
       completion:^(BOOL finished){ 
        // if(finished) 
        // { 
         font_index++; 
         [self fontIt]; 
        //} 
       }]; 

}

Mã này có thể trả lời câu hỏi của bạn

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