簡體   English   中英

AutoLayout無法用於Plus型號

[英]AutoLayout not working for Plus models

我目前正在開發一個教育應用程序,第一個視圖控制器顯示主要類別,第二個(幾乎與Pinterest相似)顯示幾個子類別。 我使用的Auto布局非常適合iPhone 6、7、8和X,但其中的Plus機型有些變形

這就是模型6、7、8和X的外觀

在此處輸入圖片說明

在此處輸入圖片說明

但是,當我在Plus模型中運行它時,它看起來如下所示:

在此處輸入圖片說明

在此處輸入圖片說明

我有以下自動布局代碼

此自動版式對應於第一個視圖控制器,我使用的是堆棧視圖,因此ScrollView的高度可以根據堆棧視圖的內容進行調整。 在此處輸入圖片說明

此自動版式對應於類似Pinterest的子類別視圖控制器。 我正在使用Ryan Wenderlich使用的代碼,但是在兩個視圖控制器中我都使用按鈕,而不是使用圖像,因此用戶可以轉到相應的部分。 我以編程方式添加它們,但始終將其連接到單元項目原型。

如何才能使Auto版式適用於Plus型號? 在此處輸入圖片說明

我發現了您的問題:

每個按鈕都有一個Button標題,您應該刪除默認標題。 該標題按下了按鈕的圖像,並且由於標題為白色,您看不到它。

您還可以通過“ Control > Alignment section查看我附加的屏幕截圖來控制UIButton的圖像。

在此處輸入圖片說明

順便說一句,我建議您在其上使用UIImageView + UIButton而不是使用UIButton的圖像內容。

編輯

CollectionView完全是一團糟! 會吃掉很多RAM。 彼此之間有很多單元格。

在此處輸入圖片說明

順便說一句,似乎您的第二個視圖控制器問題與未設置約束的stackviews有關。

    cell.addSubview(stackView)

    NSLayoutConstraint(item: stackView, attribute: .centerX, relatedBy: .equal, toItem: cell, attribute: .centerX, multiplier: 1, constant: 0).isActive = true
    NSLayoutConstraint(item: stackView, attribute: .centerY, relatedBy: .equal, toItem: cell, attribute: .centerY, multiplier: 1, constant: 0).isActive = true

我只是將其中一個stackview居中,然后發現它與約束有關。

看這像設定Constraint編程: 斯威夫特| 以編程方式添加約束

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM