objective c - مركز أويبوتون برمجيا




objective-c ios (2)

لدي أويبوتون التي أضيفها برمجيا. لا توجد مشاكل هنا، فإنه يستريح كما ينبغي وأن تبدو جيدة. ومع ذلك، عندما إمالة الهاتف إلى أفقي الزر يحصل على الخروج من المكان، وأريد أنها لا تزال تتمحور.

صورة:

المناظر الطبيعيه:

لقد حاولت حفنة من الشيء ولكن لا يمكن أن يبدو للحصول على العمل، ويبدو لي أن أوتوريزينغ يجب أن تأخذ الرعاية من ذلك، ولكن ... أنها لا تعمل في هذه الحالة.

- (UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 49)];

    _notMeButton = [UIButton buttonWithType:UIButtonTypeCustom];
    UIImage *butImage = [[UIImage imageNamed:@"notme.png"] stretchableImageWithLeftCapWidth:6 topCapHeight:6];
    UIImage *butImagePressed = [[UIImage imageNamed:@"KC_notmePressed.png"] stretchableImageWithLeftCapWidth:6 topCapHeight:6];
    [_notMeButton setBackgroundImage:butImage forState:UIControlStateNormal];
    [_notMeButton setBackgroundImage:butImagePressed forState:UIControlStateHighlighted];
    [_notMeButton setTitle:NSLocalizedString(@"Change address", @"KlarnaCheckout") forState:UIControlStateNormal];
    [_notMeButton setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
    [_notMeButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
    [_notMeButton setTitleShadowColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [_notMeButton.titleLabel setShadowColor:[UIColor whiteColor]];
    [_notMeButton.titleLabel setShadowOffset:CGSizeMake(0, 1)];
    [_notMeButton.titleLabel setFont:[UIFont systemFontOfSize:14]];
    [_notMeButton addTarget:self action:@selector(thisIsNotMe) forControlEvents:UIControlEventTouchUpInside];
    [_notMeButton setTag:1];
    [_notMeButton sizeToFit];
    [_notMeButton setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin];
    [_notMeButton setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin];
    [_notMeButton setFrame:CGRectMake(10, 10, _notMeButton.frame.size.width+20, _notMeButton.frame.size.height)];
    [_notMeButton setCenter:footerView.center];

    [footerView addSubview:_notMeButton];

    return footerView;
}

شيء واحد قبل أن أجيب على سؤالك:

[_notMeButton setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin];
[_notMeButton setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin];

الجملة الثانية الكتابة فوق الأولى، يجب عليك استخدام | المشغل لذلك يتم تطبيق كل من قناع تغيير الحجم:

[_notMeButton setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];

للحفاظ على العنصر حيث هو عندما يغير العرض حجمه، تحتاج إلى أن أقول لكم عدم استخدام أي قناع تغيير الحجم:

[_notMeButton setAutoresizingMask:UIViewAutoresizingNone];

وما يعادلها في واجهة منشئ هو هذا:

اتمني ان يكون مفيدا


فكرتك حول قناع التهيئة التلقائية صحيحة، ولكنك تقوم بتعيينها بشكل غير صحيح:

[_notMeButton setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin];
[_notMeButton setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin];

السطر الثاني الكتابة فوق ما قمت بتعيين في 1. الطريقة الصحيحة لوضع عدة أعلام ستكون:

[_notMeButton setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];




uibutton