Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
483 kez görüntülendi
ios development kategorisinde tarafından
tarafından düzenlendi
RTF dosyamı aşağıdaki şekilde TextView'e set ettim:

https://gist.github.com/anonymous/e506d57f2d6531c9ee92

Yalnız şöyle bir sorunum var:
Textview'in font boyutunu bir slider ile değiştirmek isteyince RTF dosyamdaki bütün html taglar (bold, eğik gibi) kayboluyor.  Bu sorunu nasıl aşabilirim ?

1 cevap

+1 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

direkt font size'ını değiştirirseniz gider tabi.
attributedString özelliklerini muhafaza ederek font size'ı değiştirmeniz gerek.

attributedString düzenlemelerini nasıl yapacağınıza ait bir çok kaynak var nette,
developer dokümantasyonuda şurada,
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/AttributedStrings/Tasks/ChangingAttrStrings.html

tarafından
Araştırmalarım neticesinde istediğim etkiyi elde edebilmek için bulduğum örnekler oldu. Ama hepsi Obj-C üzerineydi. Bu aşağıdaki örnek kod bloğunu Swift'e nasıl çevirebilirim ?

Örnek şurada:
https://gist.github.com/anonymous/cf1107f03ee33a60c957
tarafından
+1
objective-c'de block based bir operasyonda block içerisinde düzenlenmesini istediğimiz dış değişkenimiz için __block ifadesini kullanmak zorundaydık.
Swift'de artık bunu kullanmanıza gerek  yok.


şöyle bir şey olması lazım verdiğiniz objective-c örneğinin swift karşılığı;


var newSizeFactor:CGFloat = 5 // font size multiplier for desired new font size
        
        var res:NSMutableAttributedString = NSMutableAttributedString(string: "myString")
        res.beginEditing()
        var found = false
        res.enumerateAttribute(NSFontAttributeName, inRange: NSMakeRange(0, res.length), options: NSAttributedStringEnumerationOptions.allZeros) { (data, range, stop) -> Void in
            if let oldFont = data as? UIFont {
                let newFont = oldFont.fontWithSize(oldFont.pointSize * newSizeFactor)
                res.removeAttribute(NSFontAttributeName, range: range)
                res.addAttribute(NSFontAttributeName, value: newFont, range: range)
                found = true
            }
        }
        if !found {
            //nothing found
        }
        res.endEditing()
tarafından
Çok teşekkür ederim.
...