小编Mar*_*ano的帖子

UICollectionView自动调整高度

如何正确调整UICollectionView的大小以使其完全显示其内容?我尝试了很多东西,包括设置框架,调用reloadData和使布局无效:

self.collectionView.contentSize = CGSizeMake(300, 2000);
self.collectionView.frame = CGRectMake(0, 0, 300, 2000);
[self.collectionView reloadData];
[self.collectionView.collectionViewLayout invalidateLayout];
Run Code Online (Sandbox Code Playgroud)

但这些都没有任何影响.按下按钮后,我仍然看到初始视图,如下所示:

集合视图仅在帧大小调整后显示部分内容

我有一个小的演示程序,我有一个产生100个元素的数据源.在Interface Builder中,我最初将UICollectionView的大小设置为一个较小的值,以便不是所有元素都适合,之后我按下一个按钮,然后执行上面的代码.我希望UICollectionView现在显示所有元素,但事实并非如此.

编辑:演示程序可以在https://github.com/mjdemilliano/TestUICollectionView找到.

编辑2:我观察到帧更新在某些时候丢失,因为如果我再次按下按钮,当前帧将回到旧值.在按钮事件处理程序中添加一些日志语句后,日志输出为:

before: frame = {{0, 58}, {320, 331}}, contentSize = {320, 1190}
update button pressed
after: frame = {{0, 0}, {300, 2000}}, contentSize = {300, 2000}
before: frame = {{0, 58}, {320, 331}}, contentSize = {320, 1190}
update button pressed
after: frame = {{0, 0}, {300, 2000}}, contentSize = {300, 2000}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么不保留框架更改,改变它的原因.

在某些时候,我将用流布局中获得的值替换硬编码值,但我想排除这一点,并尽可能简单地保持我的示例.

上下文:我最终想要做的是:我有一个可滚动的视图,包含标签和图像等各种控件,以及一个包含动态内容的集合视图.我想滚动所有这些,而不仅仅是集合视图,因此我没有使用集合视图自己的滚动工具,它工作正常.

objective-c ios uicollectionview nslayoutconstraint

50
推荐指数
2
解决办法
4万
查看次数

如何为Django管理模型添加实例表单设置初始数据?

在显示表单之前,如何在自动生成的表单中设置字段的初始值以添加Django模型实例?我正在使用Django 1.3.1.

我的模型如下:

class Foo(models.Model):
  title = models.CharField(max_length=50)
  description = models.TextField()
Run Code Online (Sandbox Code Playgroud)

而目前的管理形式真的没什么特别的

class FooAdmin(admin.ModelAdmin):
  ordering = ('title',)
Run Code Online (Sandbox Code Playgroud)

当我使用管理页面添加一个新的Foo实例时,我得到一个很好的表单,其中包含标题和描述的空字段.我想要的是描述字段是通过调用函数获得的模板设置的.

我目前最好的尝试是:

def get_default_content():
  return 'this is a template for a Foo description'

class FooAdminForm(django.forms.ModelForm):

  class Meta:
      model = Foo

  def __init__(self, *args, **kwargs):
      kwargs['initial'].update({'description': get_default_content()})
      super(FooAdminForm, self).__init__(self, *args, **kwargs)

class FooAdmin(admin.ModelAdmin):
  ordering = ('title',)
  form = FooAdminForm
Run Code Online (Sandbox Code Playgroud)

但如果我尝试这个,我得到这个Django错误:

AttributeError at /admin/bar/foo/add/ 
   'FooForm' object has no attribute 'get'
Request Method: GET
Request URL:    http://localhost:8000/admin/bar/foo/add/
Django Version: 1.3.1
Exception Type: AttributeError
Exception Value:    'FooForm' …
Run Code Online (Sandbox Code Playgroud)

forms django model admin

19
推荐指数
3
解决办法
3万
查看次数

iframe contentWindow在缩短document.domain后抛出Access Denied错误

我通过以下方式动态创建IFRAME:

var wrapUpIframe = document.createElement("iframe");
wrapUpIframe.id = 'WrapUpDialog3';
wrapUpIframe.src = 'WrapUpDialog.html';    
document.body.appendChild(wrapUpIframe);
Run Code Online (Sandbox Code Playgroud)

在动态创作之后,我document.domain被缩短Servername.dc.com到只有dc.com,

但是当我尝试访问时,contentWindow我得到了一个Access被拒绝的错误:

document.getElementById("WrapUpDialog3").contentWindow.SomeFunction();
Run Code Online (Sandbox Code Playgroud)

注意:当我在HTML中静态定义IFRAME时,它可以正常工作.
我还试图document.domain通过以下方式更改我的IFRAME :

WrapUpDialog3.document.domain = dc.com;
Run Code Online (Sandbox Code Playgroud)

我检查了两个document.domain和我的IFRAME域,它们都是相同的.

我能做什么?

我正在使用IE9.

javascript iframe internet-explorer dynamic access-denied

10
推荐指数
1
解决办法
5万
查看次数

如何在select2单选中触发标签创建(例如,当按下相邻按钮时)?

我正在使用select2 4.0.3.我有一个select2框用于输入电子邮件地址,我想确保所有电子邮件地址都包含在内.val(),也是用户在搜索字段中输入的地址.

表单元素

表单字段由引用$('.invite-emails-field').当我按下发送按钮,在事件处理程序$('.invite-emails-field').val()只是给我的前两个地址test1@example.comtest2@example.com,而第三个地址(test3@example.com).

这是我初始化select2元素的方法:

$('.invite-emails-field').select2({
  tags: true,
  tokenSeparators: [',', ' '],
  selectOnBlur: true
});
Run Code Online (Sandbox Code Playgroud)

selectOnBlur没有任何效果,我无法找到任何东西,关于选择2 v4的工作.我尝试在各种元素上发射几个事件,但都没有奏效.

我希望当我按下Send按钮时,我可以调用select2框来触发为搜索字段中的内容创建标记test3@example.com,然后.val()返回一个包含所有三个地址的数组.

更新:我为你创建了一个jsFiddle.像这样输入输入:

在按发送按钮之前查看jsFiddle

然后按"发送"按钮,您将看到:

按发送后的jsFiddle视图

其中,test3@example.com从输出丢失.

请注意,在我的实际应用程序中,我已禁用下拉列表,因为我只想要标记行为.

javascript jquery select2

7
推荐指数
1
解决办法
947
查看次数

C++ 包括功能标头给出错误“__dest”未命名类型

我有一个曾经可以工作的C++。但是,包含<functional>标头后,编译失败并显示消息

c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\bits\std_function.h: In static member function 'static void std::_Function_base::_Base_manager<_Functor>::_M_clone(std::_Any_data&, const std::_Any_data&, std::true_type)':
c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\bits\std_function.h:167:11: error: '__dest' does not name a type
  167 |    ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>());
      |           ^~~~~~
c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\bits\std_function.h:167:17: error: expected ')' before '.' token
  167 |    ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>());
      |          ~      ^
      |                 )
Run Code Online (Sandbox Code Playgroud)

我使用的是 MinGW GCC 8.2.0,但版本 9.2.0 也会出现这种情况。

c++

3
推荐指数
1
解决办法
917
查看次数