UIToolbar의 높이를 변경하는 방법이 있습니까?
나는 UIToolbar
Interface Builder를 가지고 있으며 44px 높이로 고정되어 있음을 알았습니다. 물론 저는 이것을 더 크게 만들고 싶습니다.
Apple에서이 컨트롤의 크기를 조정할 수 있습니까? 그렇다면 어떻게해야합니까?
물론 프레임을 다르게 설정하면됩니다.
[myToolbar setFrame:CGRectMake(0, 50, 320, 35)];
이렇게하면 툴바의 높이가 35 픽셀이됩니다. 물론이를 위해서는 IBOutlet이 필요하거나 프로그래밍 방식으로 UIToolbar를 생성해야하지만 매우 쉽습니다.
SDK 6에서 작동하지 않으면 다음과 같이 해결할 수 있습니다.
툴바 요소를 선택하고 Editor> Pin> Height를 선택하여 제약 조건을 만듭니다. View Controller Scene으로 이동하여 생성 된 Height (44) 제약 조건을 선택한 다음 원하는 값을 입력합니다.
iPad에서 프레임을 설정하면 툴바를 숨기거나 표시 할 때 높이가 44 픽셀로 다시 재설정된다는 것을 알았습니다. 결국 UIToolbar를 재정의하고 메서드를 변경해야했습니다.
// return 'best' size to fit given size. does not actually resize view. Default is return existing view size
- (CGSize)sizeThatFits:(CGSize)size {
CGSize result = [super sizeThatFits:size];
result.height = 55;
return result;
};
이렇게하면 숨기기 / 표시로도 높이가 조정됩니다.
iOS 6에서 자동 레이아웃을 사용하는 가장 간단한 방법은 .NET Framework를 재정의하는 UIToolbar 하위 클래스입니다 instrinsicContentSize
. 다음은 툴바가 큰 내 앱의 코드입니다. 그 측면과 바닥은 평소와 같이 superview의 측면과 바닥에 고정됩니다.
-(CGSize)intrinsicContentSize {
return CGSizeMake(UIViewNoIntrinsicMetric, 85);
}
Xcode 7.1 iOS 9의 경우 자동 레이아웃에서 크기는 44px로 고정됩니다. Xcode 메뉴 옵션 편집기> 핀> 높이가 없습니다. 대신 다음 조치를 수행하십시오.
InterfaceBuilder에서 툴바 요소를 클릭하여 선택합니다. 툴바의 아무 곳이나 Ctrl + 드래그하고 놓으면 상단에 "높이"옵션이 표시된 팝업 메뉴가 표시됩니다.
이제 작업하고 필요에 따라 조정할 높이 제약 조건이 있습니다.
xib 파일을 편집 할 수도 있습니다.
소스 코드로 열고 UIToolbar의 프레임을 정의하는 항목을 찾으십시오.
<string key="NSFrame">{{0,420}, {320,44}}</string>
44의 값을 원하는 크기로 변경하면됩니다.
이렇게하면 도구 모음이 더 커지고 InterfaceBuilder에서 새 크기가 회색으로 표시되고 변경할 수는 없지만 콘센트 나 코드는 필요하지 않습니다.
툴바에 높이 제약이있는 한 UIView에서 상속 된 클래스의 높이를 조정하는 데 도움이되는이 작은 스 니펫을 사용할 수 있습니다.
-(void)setHeightConstraintTo:(CGFloat)height forView:(UIView *)view{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstAttribute = %d", NSLayoutAttributeHeight];
NSArray *filteredArray = [view.constraints filteredArrayUsingPredicate:predicate];
if(filteredArray.count > 0){
NSLayoutConstraint *constraint = filteredArray.firstObject;
constraint.constant = height;
}
}
이것이 Apple에 어떻게 적용되는지 잘 모르겠습니다. 물론 도구 모음을 사용하는 방법에 따라 다릅니다.하지만 기본 UIView를 추가하고 속성 관리자에서 해당 클래스를 UIToolbar로 변경할 수 있습니다. 이렇게하면 바 버튼 항목의 레이아웃을 희생하면서 투명성과 사용자 정의 가능성 (이 경우 높이)이 무료로 제공됩니다.
신속한 솔루션 :
myToolbar.frame = CGRect(x: myToolbar.frame.origin.x, y: myToolbar.frame.origin.y, width: myToolbar.frame.size.width, height: 20)
는 CGRectMake
사용되지 않습니다. 이것은 CGRect
. 이렇게하면 도구 모음의 높이가 20으로 설정됩니다. 세그먼트 컨트롤에서도 동일하게 작동합니다.
인터페이스 빌더에서 "사용자 정의 런타임 속성"을 사용할 수도 있습니다.
키 경로가 "Rect"유형의 "프레임"으로 설정된 항목을 추가하고 원하는 값을 설정하기 만하면됩니다.
참고 URL : https://stackoverflow.com/questions/2135407/is-there-a-way-to-change-the-height-of-a-uitoolbar
'developer tip' 카테고리의 다른 글
ElasticSearch에서 모든 _id를 검색하는 효율적인 방법 (0) | 2020.12.07 |
---|---|
Android의 WindowManager는 무엇입니까? (0) | 2020.12.07 |
Linq OrderByDescending, 먼저 null (0) | 2020.12.06 |
.android 폴더에 debug.keystore가 없습니다. (0) | 2020.12.06 |
MVC Html.Partial 또는 Html.Action (0) | 2020.12.06 |