Xamarin Forms iOS Toast Mesaj

Daha önce ki yazımda Android için nasıl toast mesaj oluşturacağımızı anlatmıştım. Bu yazımda ise internette pek fazla bulunmayan bir konuya değineceğim. Aslında toast mesaj oluşturmak için bir çok nuget paketi mevcut lakin görünümleri veya çıktıları hoşunuza gitmeyebilir. Bu yüzden kendi yazdığımız toast mesajı daha cazip geliyor.

Öncelikle Android’e yaptığımız gibi iOS içinde bu işlemleri Dependency Service yardımıyla yapacağız. İlk olarak projemizin portable katmanında bir interface oluşturmamız gerekiyor. Bu interfaceden kalıtım aldığımız sınıflarda iki işlem yapacağız. Bunlarda ilki toast mesajı uzun olarak ekranda göstermek, ikincisi ise süre olarak kısa bir zamanda ekranda göstermek olacak.

Bir interface oluşturduktan sonra projemizin iOS kısmına geliyoruz. Burada bir sınıf açıp portable katmanında oluşturduğumuz IMessage interfaceinden kalıtım almamız gerekiyor. Kalıtım aldıktan sonra interfacede ki fonksiyonları sınıfa implemente etmemiz gerekiyor. Burada yaptıklarımızı açıklamak gerekirse; ilk olarak uzun ve kısa süreli toast mesajlar oluşturacağımız için sabit süreler belirledik. Bunlar 3,5 sanıye ve 2 saniye olmak üzere. Siz bunları istediğiniz gibi ayarlayabilirsiniz. Sonrasında ise zamanı saymak için bir Timer oluşturuyoruz ve ardından ekranda mesajı belirtmek için UIAlert sınıfından bir nesne oluşturuyoruz. İstediğimiz mesajı ekrana basmak için MesajBas adında bir fonksiyon oluşturuyoruz. Bu fonksiyonda mesaj ve süre olmak üzere dışarıdan iki farklı değişken alıyor. Fonksiyonda ilk olarak süreyi kontrol ediyoruz. Eğer süre bitmişse ekrandan çekiyoruz mesajı. Bu kontrolü yaptıktan sonra mesajı ekrana basıyoruz. Tabi bu snıfın bir dependency service olduğunu da belirtmemiz lazım. Sınıfın üstünde belirttikten sonra iOS için toast mesajımızda hazır.

Şimdi geriye kalan şey ise bunu denemek olacak. Bir sayfa oluşturup buraya buton atıyorum. Bu butona basınca ise ekrana toast mesajı basmasını sağlayacağım.

Sayfanın ekran görüntüsü aşağıdaki gibidir.

Eğer sorularınız olursa mail veya yorum atarak bana ulaşabilirsiniz. İyi çalışmalar.

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.