我通过故事板创建了一个UICollectionView,并暂时将其放置在视图中;但是,我想在启动时以编程方式覆盖位置,而不是使用故事板配置。
我认为viewDidLoad()
是放置此更改的正确位置?
Swift 2代码:
override func viewDidLoad() {
super.viewDidLoad()
collectionView.dataSource = self
collectionView.delegate = self
collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "collectionCell")
collectionView.backgroundColor = UIColor(white:1, alpha:0.0)
// Doesn't stretch the width to the device's width on launch. :-(
collectionView.frame.size = CGSize(width: UIScreen.mainScreen().bounds.width, height: 200)
}
答案 0 :(得分:2)
如果您要设置约束,然后想要更改 Dictionary<int, DataGridRow> rows = new Dictionary<int, DataGridRow>();
private void chkSelectAll_Checked(object sender, RoutedEventArgs e)
{
var cur_item = DGrid.CurrentItem;
int cur_index = DGrid.Items.IndexOf(cur_item);
if (cur_index == -1) // header checkbox is checked
return;
DataGridRow row = (DataGridRow)DGrid.ItemContainerGenerator.ContainerFromItem(cur_item);
rows.Add(DGrid.Items.IndexOf(cur_item), row);
}
private void chkSelectAll_Unchecked(object sender, RoutedEventArgs e)
{
var cur_item = DGrid.CurrentItem;
rows.Remove(DGrid.Items.IndexOf(cur_item));
}
private void AllChkBox_Checked(object sender, RoutedEventArgs e)
{
foreach (var item in DGrid.Items)
{
DataGridRow row = (DataGridRow)DGrid.ItemContainerGenerator.ContainerFromItem(item);
rows.Add(DGrid.Items.IndexOf(item), row);
}
}
private void AllChkBox_Unchecked(object sender, RoutedEventArgs e)
{
rows.Clear();
}
或height
,那么您应该取出该高度或宽度的出口并增加它的常数值。只需按住ctrl +从宽度约束拖动到类,然后增加,然后在width
增加该outlate的常量属性。
例如,
viewdidload
第二件事,如果你想让你的collectionview的高度与设备相等,那么就没有必要以编程方式设置。如果设置了适当的约束,autolayout会对其进行管理。所以要点是在evrywhere使用autolayout或者根本不使用autolayout。不要混合autolayout然后以编程方式设置框架。