UITableViewCell alt sınıfıyla "-layoutSubviews" komutunu çalıştırdıktan sonra hala Otomatik Düzen gereklidir


115

XCode 4.5 ve iOS 6 kullanarak, özel hücreler içeren basit bir tablo görünümüne sahip bir uygulama geliştiriyorum. Bunu iOS 5 ve altı sürümlerde yüzlerce kez yaptım, ancak bazı nedenlerden dolayı yeni autoLayout sistemi bana çok fazla sorun çıkarıyor.

Tablo görünümümü ve prototip hücremi IB'de kurdum, alt görünümler ekledim ve bunları IBOutlets olarak bağladım ve ardından temsilcimi ve dataSource'umu kurdum. Ancak şimdi ilk hücre ne zaman alınsa cellForRowAtIndexPathşu hatayı alıyorum:

*** içinde onaylama hatası - [ShopCell layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776

*** Yakalanmamış istisna 'NSInternalInconsistencyException' nedeniyle uygulama sonlandırılıyor, nedeni: '-layoutSubviews komutları çalıştırıldıktan sonra da Otomatik Düzen gerekiyor. ShopCell'in -layoutSubviews uygulamasının süper olarak adlandırılması gerekiyor. '

Alt sınıflı hücremde (ShopCell) bir -layoutSubviews yöntemi uygulamadım ve bunu yapmaya çalışıp süper çağrıyı eklediğimde bile hala aynı hatayı alıyorum. Alt görünümleri IB'deki hücreden kaldırırsam ve onu standart bir UITableViewCell'e değiştirirsem, her şey beklendiği gibi çalışır, ancak elbette hücrelerimde hiç veri kalmaz.

Kaçırdığım basit bir şey olduğundan neredeyse eminim, ancak neyi yanlış yaptığımı önerecek herhangi bir belge veya kılavuz bulamıyorum. Herhangi bir yardım memnuniyetle karşılanacaktır.

Düzenleme: IB'de bir UITableViewCell olarak değiştirmeyi ve tüm alt görünümleri yerinde bırakmayı denedim, yine de aynı hata.


lldb [[UIWindow keyWindow] _autoLayoutTrace]Otomatik düzen kullanılıyorsa hata ayıklayıcı alanını deneyin .
A-Live

3
Özel hücre için UITableViewCell yerine UIView kullanıyor musunuz? Ben de aynı sorunu yaşadım. Özel hücre için UIView'a sahiptim ve buna alt görünümler ekliyordum. UITableViewCell olarak değiştirildi ve işe yaradı.

Hey Mike, çıkışları nasıl tanımlıyorsun? Uygulama dosyanızdaki özellikler bir sınıf uzantısında mı?
kocodude

@ A-Live Bu yöntemi her kullanmaya çalıştığımda, hata ayıklayıcıda bir hata alıyorum .... bu yöntem hala geçerli mi? Düzenleme: Boşver, otomatik düzende küçük bir l harfidir.
borrrden

inspector'da autoLayout kutusunun işaretini kaldırın, ardından temizleyin ve çalıştırın. huysuz işe yarayacak.
Nico

Yanıtlar:


57

Koda elle kısıtlamalar eklerken de aynı sorunla karşılaştım. Kodda şunları yapıyordum:

{
    [self setTranslatesAutoresizingMaskIntoConstraints:YES];
    [self addSubview:someView];
    [self addSubview:someOtherView];
    [self addConstraint:...];
}

Hipotez

Söyleyebileceğim kadarıyla, sorun şu ki, devre dışı bıraktığınızda translatesAutoresizingMaskIntoConstraints, UITableViewCell Otomatik Düzeni kullanmaya başlar ve doğal olarak başarısız olur, çünkü temeldeki uygulama layoutSublayersForLayersüper çağırmaz. Hopper veya başka bir aracı olan biri bunu onaylayabilir. IB'yi kullandığınız için muhtemelen bunun neden bir sorun olduğunu merak ediyorsunuzdur ... ve bunun nedeni, IB'nin translatesAutoresizingMaskIntoConstraintskısıtlamalar eklediği görünümleri otomatik olarak devre dışı bırakmasıdır (bunların yerine otomatik olarak genişlik ve yükseklik kısıtlaması ekleyecektir).

Çözüm

Benim çözümüm her şeyi contentView.

{
   [self.contentView addSubview:someView];
   [self.contentView addSubview:someOtherView];
   [self.contentView addConstraint:...];
}

Bunun Interface Builder'da çalışıp çalışmayacağından% 100 emin değilim, ancak hücrenizdeki her şeyi iterseniz (doğrudan üzerinde bir şey olduğunu varsayarak) o zaman işe yaramalıdır. Umarım bu size yardımcı olur!


4
Ayrıca subview.translatesAutoresizingMaskIntoConstraints = NO'contentView'e eklediğim her alt görünüme de eklemem gerekiyordu.
Jay Peyer

5
Bu benim için çalıştı. Ayrıca, marka emin do not call self.contentView.translatesAutoresizingMaskIntoConstraints = NOiçin UITableViewCell.
Maurizio

53

Görünüşe göre, UITableViewCell'in layoutSubviews uygulaması süper çağırmıyor, bu da otomatik düzen ile ilgili bir problem. Aşağıdaki kategoriyi projelere bırakmanın sorunları çözüp çözmediğini görmek isterim. Bir test projesine yardımcı oldu.

#import <objc/runtime.h>
#import <objc/message.h>

@implementation UITableViewCell (FixUITableViewCellAutolayoutIHope)

+ (void)load
{
    Method existing = class_getInstanceMethod(self, @selector(layoutSubviews));
    Method new = class_getInstanceMethod(self, @selector(_autolayout_replacementLayoutSubviews));

    method_exchangeImplementations(existing, new);
}

- (void)_autolayout_replacementLayoutSubviews
{
    [super layoutSubviews];
    [self _autolayout_replacementLayoutSubviews]; // not recursive due to method swizzling
    [super layoutSubviews];
}

@end

Bu, hücreye bir alt görünüm olarak eklendiğinden, tablo hücresinde bir backgroundView kullanırken benim için ortaya çıkan sorunu ekleyebilirim (oysa çoğu alt görünüm, genellikle daha iyi çalışması gereken tablo hücresinin contentView'una eklenmelidir).

Not: Bu hatanın iOS7'de düzeltildiği görülmektedir; Bu kodu kaldırabildim veya en azından bir çalışma zamanı kontrolü ekledim, böylece yalnızca iOS6'da çalıştırılıyorsa yapılabilir.


Garip olan şey, benim için düz bir UITableViewCell ile iyi çalışması, sadece bir alt sınıf için değil ...
09'da borrrden

Bunu düşünürdünüz, ama sahip olduğum tek şey bir başlatma yöntemi, başka bir şey değil> <. Hayatımda düzen alt görünümlerini asla geçersiz kılmadım haha. Bence sorun, UITableViewCell'in kök görünümünün otomatik düzeni kullanamadığı için kullandığı özel görünümdür, çünkü düzen alt görünümlerini geçersiz kılar (bu nedenle, kök görünümüne kısıtlamalar eklemeye çalıştığınızda başarısız olur)
borrrden

6
UITableViewAynı nedenle böyle bir kategori oluşturmak zorunda kaldım (iOS 6.1 b1)
Joshua J.McKinnon

5
Sorun hala ios 7'de mevcut olduğundan TableHeaderView için benzer bir düzeltme var mı?
Softlion

1
Bu harika çalışıyor. UITableView'da bir UIVIew alt görünümünü ortalamaya çalıştığımda bu sorunla karşılaştım. İOS 7'de bile iddia gerçekleşir. Ancak iOS 8'de bu gerçekleşmediğinden hatayı ele almış olmalılar.
Ürdün H

33

Birkaç aydır aynı hatayı yaşadım. Ama sorunun ne olduğunu buldum.

Bir IB dosyası oluşturduğumda, bir UIViewzaten ekleniyor. Bu görünümü kullanırsanız, otomatik düzen devre dışı bırakıldığında uygulama kilitlenmez (ancak başka sorunlar da vardır). Otomatik düzenini kullandığınızda, seçmek zorunda doğru nesne kitaplığında görünümü: UITableViewCell.

Aslında, gereken her zaman tüm subviews eklenir çünkü bu maddeyi kullanmak contentViewarasında UITableViewCell.

Bu kadar. Her şey iyi olacak.


Bu kabul edilen cevap olmamalıdır çünkü soru IB kullanan bir uygulama ile ilgili değildir ve çünkü bu problem IB kullanmadığınızda ortaya çıkabilir. Görüşlerinizi programlı olarak yapıyorsanız, @ PhilLoden'in cevabı daha geçerli olacaktır.
Eric

Cevabı anlamadım birisi daha net açıklayabilir mi? teşekkürler
hasan

Sanırım buna hakkım var. derse bakmanız yeterli mi? Arayüz oluşturucudaki kimlik denetçisinde mi? veya eklenen başka bir tür ve sınıftı att. daha sonra mı güncellendi? bu da soruna neden olur mu?
hasan

@ hasan83 Hücreyi gerçekten döndürebilirsiniz. Bir UITableViewCell temelde yeniden kullanım tanımlayıcıya sahip bir UIView'dir.
Arnaud

17

Custom UITableViewHeaderFooterView+ xib ile aynı sorunları yaşadım .

Burada bazı yanıtlar gördüm, ancak -layoutSubviewsözel altbilgi görünümü sınıfımdaki uygulama sorununu düzelttiğini buldum :

-(void)layoutSubviews
{
    [super layoutSubviews];
    [self layoutIfNeeded]; // this line is key
}

1
Bunun sonsuz döngüye ve son olarak da EXC_BAD_ACCESS KERN_PROTECTION_FAILURE
mbi

15

Bunu layoutSubviews uygulamamdaki kısıtlamaları değiştirmenin bir sonucu olarak görüyordum. Çağrıyı, yöntemin başından sonuna kadar süper'e taşımak sorunu çözdü.


Bu benim için çalıştı. LayoutSubviews içinde formatladığım özel bir UICollectionViewCell var. Bu çözümün neden işe yaradığını bilen var mı?
STANGMMX

@STANGMMX, Aa Dickens'ın cevabı nedenini açıklıyor.
Fábio Oliveira

15

İOS 7'de aynı sorunu yaşadım (iOS 8 düzeliyor gibi görünüyor). Benim için çözüm yöntemimin [self.view layoutIfNeeded]sonunda viewDidLayoutSubviewsaramaktı.


Teşekkür ederim. Bana yardımcı oluyor, dün bu problemle tanıştım (iOS 7'de). iOS 7 için yardımcı olur.
Alexander

@MaciejSwic cevabımı en üstte görüyor.
Sound Blaster

Bu benim için çalıştı! İOS 7.1'i Swift ile kullanma. ViewDidLayoutSubviews'e bir kısıtlama ekliyordum. Süper aramayı kaldırdım ve hala çalışmıyordu, ancak bu çözüm hile yaptı! bu dinozora bir yaprak ver! :)
jomafer

İOS 7.1 kullanarak benim için de çalıştı!
fdlr

14

Ben de aynı sorunu yaşadım. Sorun, Xib hücresini yaratma şeklimdi. Normal gibi bir Xib oluşturdum ve varsayılan "UIView" türünü özel UITableViewCell sınıfıma değiştirdim. Bunun doğru yolu, önce varsayılan görünümü silmek ve ardından tablo görünümü hücre nesnesini xib'e sürüklemektir. Daha fazla ayrıntı burada: http://allplayers.github.io/blog/2012/11/18/Custom-UITableViewCell-With-NIB/


1
Mükemmel fikir! Bunu fark etmek için yaşlarım gerekir, özellikle de Otomatik Yerleşim devre dışı bırakılmış bir UIView kullanırsam uygulamalarım çökmez.
Guilherme

Süper! ayrıca bkz. @Arnaud aşağıda
yanıtlandı

7

Özel Tablo Görünümü Hücrimin tüm alt görünümleri için "Otomatik Düzen" i kapatarak sorunu çözdüm.

Özel bir hücre için xib'de bir alt görünüm seçin ve Dosya Denetçisi> Arayüz Oluşturucu Belgesi> Otomatik Düzen Kullan'ın işaretini kaldırın.


4
Ben de aynısını yaptım. Yine de otomatik
düzeni

7

Ben değil, benzer bir sorun vardı UITableViewCellama doğrusu üzerinde UITableViewkendisi. Google'daki ilk sonuç olduğu için buraya göndereceğim. viewForHeaderInSectionSorunun bu olduğu ortaya çıktı . Bir oluşturulan UITableViewHeaderFooterViewve dizi translatesAutoresizingMaskIntoConstraintsiçin NO. Şimdi ilginç kısım geliyor:

iOS 7:

// don't do this on iOS 7
sectionHeader.translatesAutoresizingMaskIntoConstraints = NO;

Bunu yaparsam uygulama ile kilitleniyor

-LayoutSubviews komutları çalıştırıldıktan sonra da Otomatik Düzen gereklidir. UITableView'ın -layoutSubviews uygulamasının super çağırması gerekir.

Tamam, bir tablo görünümü başlığında ve yalnızca alt görünümlerde otomatik düzeni kullanamayacağınızı düşündüm. Ama daha sonra göreceğiniz gibi tam gerçek bu değil. Özetlemek gerekirse: iOS 7'de başlık için otomatik yeniden boyutlandırma maskesini devre dışı bırakmayın. Aksi takdirde iyi çalışıyor.

iOS 8:

// you have to do this, otherwise you get an auto layout error
sectionHeader.translatesAutoresizingMaskIntoConstraints = NO;

Bunu kullanmazsam şu çıktıyı alırdım:

Aynı anda kısıtlamaları karşılayamıyor.

İOS 8 için, başlık için otomatik yeniden boyutlandırma maskesini devre dışı bırakmanız gerekir.

Neden bu şekilde davrandığını bilmiyorum ama Apple'ın iOS 8'de bazı şeyleri düzelttiği ve otomatik düzen iOS 7 ve iOS 8'de farklı çalışıyor gibi görünüyor.


Dostum sadece günümü kurtardın!
Marcin Małysz

5

Yukarıda birisinin daha önce belirttiği gibi, bir UITableView'da kullanmak için bir görünüm oluşturduğunuzda, varsayılan olarak oluşturulan görünümü silmeniz ve kök görünüm olarak bir UITableViewCell veya UITableViewHeaderFooterView'ı sürüklemeniz gerekir. Ancak, bu bölümü kaçırmış olmanız durumunda XIB'yi düzeltmenin bir yolu var. Bir metin editörü ve kök etiketi ve doğrudan alt eklemedeki XIB dosyasını açmak zorunda / niteliğini değiştirmek translatesAutoresizingMaskIntoConstraintsiçin YESörneğin,

<view contentMode="scaleToFill" horizontalHuggingPriority="1000" id="1" translatesAutoresizingMaskIntoConstraints="YES" customClass="MXWCollapsibleTableHeaderView">


2

Bununla karşılaşıyorum ve görünüşe göre UITableViewCell alt sınıflarıyla, özellikle kendilerine eklenen diğer özel UIView alt sınıflarına sahip prototip hücreler olarak ilişkili görünüyor. Burada 'geleneği' vurguluyorum çünkü sadece UIKit çocukları olan hücrelerde başarılı oldum, ancak ısmarlama oluşturduğum görüşler için kısıtlamalar oluşturmaya çalışırken yazarlar sorusunda belirtilen hatayı atarak düşüyor.

Hücrelerimi AutoLayout kullanmayan bağımsız uçlara ayırmak zorunda kaldım.

Umarım Apple bu pisliği temizlesin.


2

Alt görünümlerinizi hücrenin kendisi yerine hücrenin contentView öğesine ekleyin. Yani bunun yerine:

[self addSubview:someView];

kullanmalısın

[self.contentView addSubview:someView];


1

Bununla karşılaştım çünkü başlangıçta bir xib dosyasına bir UITableViewCell yerine bir UIView ekledim.


1

backgroundViewKonektörü arka planımdan UIImageViewve accessoryViewbağlayıcıyı UIButtonözelleştirmelerimden ayırarak bu hatayı ortadan kaldırdım . Bunların benim kullandığım şekilde kullanılması amaçlanmadığından şüpheleniyorum.


1

Bugün bu sorunla ilk kez karşılaştım. Şimdiye kadar prototip UITableViewCell alt sınıflarını kullanma konusunda çeşitli deneyimlerim oldu, ancak bu sorunla hiç karşılaşmadım. Çalıştığım hücreyle ilgili farklı olan şey, hücreyi renklendirmek için kullandığım -backgroundView için bir IBOutlet'e sahip olmamdı. Yeni bir mülk oluştursam ve yine de tüm hücrenin kapsamını genişleten yeni bir UIView eklersem, bu iddianın ortadan kalktığını gördüm. Nedenin bu olduğunu doğrulamak için, bu görünümü backgroundView çıkışına eklemeye geri döndüm ve iddia yeniden ortaya çıktı. Şimdiye kadar, bu değişikliği yaptığımdan beri UITableViewCell alt sınıfına sahip bir prototipte AutoLayout kullanırken başka sorun yok.


1

Bu sorun için uygun bir çözüm bulamadım, ancak çerçeveleri kullanarak ve translatesAutoresizingMaskIntoConstraints özelliğini Hayır olarak ayarlamayarak düzeltebilirsiniz (varsayılan olarak evet, bu yüzden ayarlamayın)

CGRect headerViewFrame = CGRectMake(0,0,320,60); //Frame for your header/footer view
UIView *tableHeaderView = [[UIView alloc] initWithFrame:headerViewFrame];
tableHeaderView.translatesAutoresizingMaskIntoConstraints = Yes; //Or don't set it at all
[self.tableView setTableHeaderView:tableHeaderView];

0

Ben de aynı şeyi yaşıyorum. ShopCell .xib / film şeridinizden programlı olarak, otomatik mizanpajı başka bir görünüme bir alt görünüm olarak kullanan bir alt görünüm eklerseniz, kısıtlamalarınızın nasıl yapılandırıldığına bağlı olarak bu istisna atılabileceği ortaya çıktı. Tahminimce, bir görünümü bir alt görünüm olarak programlı olarak eklerken sorun yaratan şey IB'de oluşturulan kısıtlamalardır, çünkü bu, görünümA -> görünümB'den gelen kısıtlamaları sürdürürken bu arada, görünümB'yi de bir görünümC'nin alt görünümü olarak ekleyebilirsiniz. Anladın mı (bu cümle kafamı bile karıştırıyor)?

Benim durumumda - soruna neden olan çok basit görünümler olduğu için - görünümleri IB'de değil programlı olarak oluşturdum. Bu onu çözdü. Bu görünümleri diğer xib dosyalarına çıkarabilir ve bunlar için otomatik düzeni devre dışı bırakabilirsiniz. Sanırım bu işe yarar.


0

Bazı durumlarda, bu, yerleşim sorununu kolayca çözer (düzeninize bağlı olarak). UITableView alt sınıfınızın içinde, awakeFromNib veya init içinde otomatik yeniden boyutlandırma maskesini ayarlayın:

self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

Varsayılan olarak, UIViewAutoresizingNone olarak ayarlanır.


Bu, karşılaştığım sorunu çözdü. Daha [tableViewCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].heightsonra kullandığım yüksekliği elde etmek için bir tablo hücresi içinde otomatik düzen kullanıyorum heightForRowAtIndexPath.
NathanAldenSr

0

Benim durumumda,

UITableView için otomatik düzen için başvurulan UIImageView, UITableView 'un backgroundView' a atanır.

self.tableView.backgroundView = self.tableBackgroundImageView;

Bu yüzden, UIImageView for backgroundView'i UIView'den (Kök görünüm) kaldırdım ve bu UIImageView'a tüm otomatik düzen referansını sıfırladım (kaldırdım). Bu UIImageView'ı arka plan için UIView'den (kök görünümü) dışarıya yerleştirdim. Ve sonra koddaki UITableView'ın backgroundView'e atayın.

Sonra düzeltildi.


0

Çözümü buldum.

Benim durumumda, hücre görünümünü film şeridinde oluşturdum (otomatik düzen etkinken) ve ViewController.m'de özel UITableViewCell arayüzünü tanımladım, arayüzü ViewController.h'ye taşımam gerekiyor.


0

Özel UITableViewCell'i oluşturmak için film şeridini kullandığımda aynı sorunla karşılaştım. Neyse ki sorunu buldum, çünkü aksesuarı ([UITableViewCell setAccessoryView:]) hücreye eklediğim UIButton'a çıkardım.

Yani projemde iOS6'da çalıştırıldığında gerçekleşti.

Çözüm

AccessoriesView ile özel hücreyi içeren düğmem arasındaki çıkışı bırakıyorum.

öneri

UITableViewCell'in yerel öğelerini kullanmamalı ve değiştirmemelisiniz.


0

Bu sorun, [super viewDidAppear:]içeriden aramayı unutmaktan kaynaklanabilir viewDidAppear, ancak eminim tek neden bu değildir.


0

Ben de tamamen aynı sorunu yaşadım. Projemle ilgili sorun şudur:
Arayüz Oluşturucu üzerinde özel bir UITableViewCell oluşturmak için çalışırken, Xcode'daki nesne toplama bölmesinden özel tablo hücresi olarak Tablo Görünümü Hücresi yerine bir Görünüm sürükledim . Aynı durumdaysanız, çözüm şudur: Arayüz oluşturucudaki görünümü silin, nesne toplama bölmesinden bir Tablo Görünümü Hücresi sürüklediğinizden ve özel tablo hücresi görünümünü yeniden yaptığınızdan emin olun. Eski görünümdeki nesneleri kopyalayabilir ve yeni Tablo Görünümü Hücresi için tuvale yapıştırabilirsiniz.



0

Xcode 6, iOS 7 + 'da ayarladığım bir tablo altbilgi görünümüyle çok benzer bir sorun yaşadım. Çözüm, uç dosyası biçimindeydi. Görünüşe göre Xcode 4 formatında ya da başka bir şekilde sıkışmış. Dosya ayarlarının "şurada açılır: Xcode 6.0" (veya bu konuda Varsayılan) olarak değiştirilmesi, anında düzeltildi. Çözümü tesadüfen buldum: Beni çılgına çeviriyordu, bu yüzden tüm dosyayı sildim ve açıkçası varsayılan ayarlarla yeniden oluşturdum. Dosyayı en son Xcode'da düzenlemenin, onu genellikle olduğu gibi Xcode 5+ biçimine dönüştürmemesinin nedenini bilmiyorum.

f


0

Ben de aynı sorunu yaşadım. DetailViewController'ıma gittim ve tanımlayıcıyı UIView olarak yeniden adlandırdım. Daha önce UITableView'daydı. Sorunu çözdü. Bu sorunun DetailViewController'ınızda olması gerekmez. Başka herhangi birinde olabilir. Saygın tanımlayıcıyla yeniden adlandırmayı deneyin.


0

IB'deki statik tablo görünümü hücreleriyle benzer bir sorun yaşadım. Hücrelerden biri, yanlışlıkla UITextfield'ın bir alt sınıfına dönüştürülen bir sınıfa sahip bir alt görünüme sahipti. Derleyici herhangi bir uyarı / hata vermedi. Ancak çalışma zamanında sistem, sonuç olarak yukarıda belirtilen çökme ile görünüm denetleyicisini yükleyemedi.



0

Çözüm: Süper düzeni çağırmadan önce kısıtlamaları değiştirin

- (void)layoutSubviews
{

    [self _updateConstraints];

    [super layoutSubviews];
}

0

Ben modifiye Carl Lindberg cevabı geçersiz kılmak için UITableViewyerine ve benim için çalışmaya başladı:

UITableView + AutoLayoutFix.h

@interface UITableView (AutoLayoutFix)
@end

UITableView + AutoLayoutFix.m

#import <objc/runtime.h>

@implementation UITableView (AutoLayoutFix)

+ (void)load
{
    Method existingMethod = class_getInstanceMethod(self, @selector(layoutSubviews));
    Method newMethod = class_getInstanceMethod(self, @selector(_autolayout_replacementLayoutSubviews));

    method_exchangeImplementations(existingMethod, newMethod);
}

- (void)_autolayout_replacementLayoutSubviews
{
    [super layoutSubviews];
    [self _autolayout_replacementLayoutSubviews]; // not recursive due to method swizzling
    [super layoutSubviews];
}

@end

Sonra MyViewController.mkategoriyi içeri aktardım:

#import "UITableView+AutoLayoutFix.h"

0

Aynı problemle karşılaştım ve sonunda sebebinin UITableViewCell'e UITableViewCell'in contentView olması gereken bir kısıtlama eklemem olduğunu buldum . Kısıtlamayı değiştirdiğimde her şey yolunda gitti!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.