2014-11-16 26 views
1

當我通過設置左右,頂部和高度約束來添加帶有自動佈局的子視圖時,我無法添加輕擊手勢,並且我的按鈕不能接收輕拍。UIView添加了自動佈局並沒有收到水龍頭/事件

當我手動將框架設置到需要的位置並且不使用自動佈局時,我可以添加手勢識別器,並且我的按鈕是交互式的。

爲什麼添加自動佈局的視圖不響應事件?

我想使用自動佈局,因爲我想回應不同的方向和尺寸,這些方向和尺寸比我想要處理的手動幀調整更復雜。

回答

1

如果您使用自動佈局限制了您的視圖太多,就會發生這種情況。例如,您可能會意外地將視圖的高度設置爲零或將其放置在放置按鈕的區域之外。請注意,按鈕本身可以放置在看起來正確的位置,但它們實際上位於自動佈局引擎爲父視圖計算的區域之外。

另一件可能會打擊你的事情是,如果你以編程方式添加了所有自動佈局約束,Interface Builder中的一些約束仍可能被啓用。您可以確保IB約束上通過設置view.translatesAutoresizingMaskIntoConstraints = NO;

也可以忽略,要注意在控制檯窗口中的任何運行時自動佈局的警告,他們往往會告訴你,如果一些約束上沒有發揮好在一起。

+0

我發誓我做了所有這些。但我猜不。 1.)確保您的自動佈局約束是正確的。我的身高限制沒有設置,這就是爲什麼視圖顯示禁用,並沒有正確的背景顏色。 您還需要在添加的子視圖上使用translatesAutoresizingMaskIntoConstraints - > NO。 –

相關問題