gpt4 book ai didi

ios - UIView 不显示在给定的框架中

转载 作者:行者123 更新时间:2023-11-29 01:19:27 25 4
gpt4 key购买 nike

我正在尝试快速并排创建两个下拉菜单。到目前为止,它包含一个 UIView(使用 NIB 创建),然后是在代码中创建的两个 UIView,用作两个 UITableView 的包装器,当按下下拉菜单时将显示这两个 UITableView。我的左侧菜单(排行榜菜单)运行良好,但是当我尝试以完全相同的方式创建第二个菜单时,按下第二个菜单时它不显示。出于某种原因,如果框架的 x 值超过 194,则不显示,我的猜测是第二个菜单被添加为第一个菜单的 subview ,但由于第一个的边界只有 194 宽,所以它在为该 View 显示的边界。我将提供一些代码来展示我正在尝试做的事情。感谢您的任何回复!

let leaderboardMenuFrame = CGRect(x: 0.0, y: 0.0, width: 194.0, height: leaderboardTableHeight)
let rankingMenuFrame = CGRect(x: 195.0, y: 0.0, width: 92.0, height: rankingTableHeight)

// Set up leaderboard DropdownMenu
self.leaderboardMenuWrapper = UIView(frame: leaderboardMenuFrame)
self.leaderboardMenuWrapper.clipsToBounds = true
self.leaderboardMenuWrapper.autoresizingMask = UIViewAutoresizing.FlexibleWidth.union(UIViewAutoresizing.FlexibleHeight)

// Set up ranking DropdownMenu
self.rankingMenuWrapper = UIView(frame: rankingMenuFrame)
self.rankingMenuWrapper.clipsToBounds = true
self.rankingMenuWrapper.autoresizingMask = UIViewAutoresizing.FlexibleWidth.union(UIViewAutoresizing.FlexibleHeight)

//Init Leaderboard menu table view
self.leaderboardMenuTableView = DropDownTableView(frame: CGRectMake(leaderboardMenuFrame.origin.x, leaderboardMenuFrame.origin.y + 0.5, leaderboardMenuFrame.width, leaderboardMenuFrame.height+300))

//Init Ranking menu table view
self.rankingMenuTableView = DropDownTableView(frame: CGRectMake(rankingMenuFrame.origin.x, rankingMenuFrame.origin.y + 0.5, rankingMenuFrame.width, rankingMenuFrame.height+300))

self.leaderboardMenuWrapper.addSubview(self.leaderboardMenuTableView)
self.rankingMenuWrapper.addSubview(self.rankingMenuTableView)

view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]


// Add Menu View to container view
view.addSubview(self.rankingMenuWrapper)
view.addSubview(self.leaderboardMenuWrapper)

addSubview(view)

最佳答案

我想问题出在这行代码上:

//Init Ranking menu table view
self.rankingMenuTableView = DropDownTableView(frame: CGRectMake(rankingMenuFrame.origin.x, rankingMenuFrame.origin.y + 0.5, rankingMenuFrame.width, rankingMenuFrame.height+300))

rankingMenuTableView的由来应该是x = 0 .但是当您使用rankingMenuFrame时初始化framerankingMenuTableView它的origin将是x = 195 .这将插入您的rankingMenuTableViewbounds .

所以实现你想要的正确方法应该是:

//Init Ranking menu table view
self.rankingMenuTableView = DropDownTableView(frame: CGRectMake(0, rankingMenuFrame.origin.y + 0.5, rankingMenuFrame.width, rankingMenuFrame.height+300))

希望这对您有所帮助。

关于ios - UIView 不显示在给定的框架中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34781719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com