ios - 创建宽度等于 TableView 分隔符宽度的 View

标签 ios cocoa uiview autolayout

我正在创建一个表格 View 单元格,并用自定义 View 填充该单元格。我希望 View 宽度与 TableView 的分隔符插入相同(默认情况下文本单元格看起来也是如此)。我的代码如下所示:

- (id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
    self.preservesSuperviewLayoutMargins = true;
    self.contentView.preservesSuperviewLayoutMargins = true;

    myInnerView = [[MyInnerView alloc] initWithFrame:CGRectZero];

    [self.contentView addConstraint:[NSLayoutConstraint 
    constraintWithItem:myInnerView 
    attribute:NSLayoutAttributeCenterX
    relatedBy:NSLayoutRelationEqual
    toItem:self.contentView
    attribute:NSLayoutAttributeCenter:
    multiplier:1.0f constant:0.f]];

    [self.contentView addConstraint:[NSLayoutConstraint 
    constraintWithItem:myInnerView
    attribute:NSLayoutAttributeWidth
    relatedBy:NSLayoutRelationEqual
    toItem:self.contentView
    attribute:NSLayoutAttributeWidth
    multiplier:1.0f constant:0.f]];

    // some vertical constraints here
    }
return self;
};        

但这给了我一个完全填充整个屏幕的 View ,而不仅仅是内部部分。有谁知道如何解决这个问题吗?

最佳答案

分隔符基于readableLayoutGuide定位。

而不是相对于 centerXwidth 进行布局,您想要相对于 leavedLayoutGuide leading 进行布局和可读布局指南尾随

关于ios - 创建宽度等于 TableView 分隔符宽度的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42145802/

相关文章:

iOS 和 Swift : CLLocationManagerDelegate not updating location coordinates beyond the first location

objective-c - 如何禁用 AVPlayerView 中的鼠标滚轮事件?

cocoa - NSCollectionViewItem 子类中的自定义 socket

ios - 在类型 'overrideUserInterfaceStyle' 的对象上找不到属性 'DatePicker *'

ios - 不同 View Controller 中的 NSFetchedResultsController 相互更新?

cocoa - 扩展 CoreDataGenerateAccessors 行为

iphone - showInView 导致剪裁

ios - 如何在 iOS 7 下更改 UIPickerView 中文本的颜色?

iphone - iOS:从 UIView 创建 PDF

ios - 如何将 WAV 文件转换为 M4A?