我有一个子类UITableViewCell。我在动态地给它添加一个uiabel和UIButton。
现在我已经重写了layoutSubviews并设置了按钮和标签的x,y绝对值。为了能够适应屏幕布局以及更大的屏幕,我想让这个自动。是否有办法告诉标签"向左浮动"和按钮"向右浮动"?理想情况下,标签应该占用按钮不需要的所有空间(按钮在大多数情况下是固定大小)。
uiview的这个属性应该可以让你开始使用
你可以尝试这样做假设cellLbl是UILabel cellBtn是UIButton:
- (void) layoutSubviews
{
CGRect rctFrm;
CGFloat flW;
CGFloat flH;
int iSpacing = 4; // This could be fixed for a percentage of cell width
[super layoutSubviews];
flW = self.contentView.bounds.size.width;
flH = self.contentView.bounds.size.height;
rctFrm = self.cellBtn.frame;
flW -= rctFrm.size.width + iSpacing;
rctFrm.origin.x = flW; // Right justify button
rctFrm.origin.y = (flH - rctFrm.size.height) / 2; // Center button vertically
[self.cellBtn setFrame:rctFrm];
rctFrm = self.cellLbl.frame;
rctFrm.origin.x = iSpacing;
rctFrm.size.width = flW - (2 * iSpacing);
// You can adjust UILabel vertical position and height if desired
[self.cellLbl setFrame:rctFrm];
}