小编mkr*_*rus的帖子

带有自定义视图的AutoLayout在NIB文件中定义并在StoryBoard中使用的问题

我在NIB文件中定义了一个自定义视图,并希望在StoryBoard中实例化一个副本,但我遇到了autolayout的问题.

在一个简单的示例中,自定义视图具有固定大小的单个标签,并且垂直和水平居中,全部使用自动布局.

在此输入图像描述

文件所有者设置为我的类,它有一个顶视图的插座.在自定义视图实现中,我做:

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if(self)
    {
        [[NSBundle mainBundle] loadNibNamed:@"FMCompassView" owner:self options:nil];
        [self addSubview:self.topView];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

现在,在我的故事板中,我添加了一个UIView,将它的类设置为我的自定义类,并将其布局为大小并居中于我的页面,再次使用autolayout.

在此输入图像描述

并且我的窗口小部件的位置和大小正确,但它的内容未调整大小,如下图所示: 在此输入图像描述

我尝试从NIB加载后添加更多约束,类似于:

UIView* subV = self.topView;
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(subV);
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[subV]|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewsDictionary]];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[subV]|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewsDictionary]];
Run Code Online (Sandbox Code Playgroud)

但这会导致无效的布局约束.

有关如何使其工作的任何想法?

干杯!

storyboard nib ios autolayout

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

在某些单元格上禁用UITableView滚动

在iOS 6中,我有一个UITableView,启用了pull to refresh.在顶部单元格中,我有几个海关控件,用户可以通过拖动圆形滑块进行交互(参见此示例).见截图...

在此输入图像描述

控件需要一个标签,并且需要拖动滑块指示器的拖动但是它们可能很难抓取,因为击中似乎经常在单元格背景上,导致表格拖动开始.

如果点击事件发生在那些控件上的任何地方,我想禁用表的默认滚动.我能想到的两个选择:

  1. 禁用表格拖动该顶部单元格内的任何事件
  2. 确保控件处理更大区域上的事件,特别是在具有透明背景的部分中

有关如何实现其中任何一项的任何建议?

谢谢!

scroll touch uitableview ios

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

标签 统计

ios ×2

autolayout ×1

nib ×1

scroll ×1

storyboard ×1

touch ×1

uitableview ×1