我被困住了,我不知道如何删除隐藏的 UIImage 的间距。目的是如果flag为true,则显示UIImage,如果flag为false,则隐藏UIImage但该隐藏图像的空间仍然存在。
我正在使用自动布局。

我在 Xcode 中添加了用于本地化的 RTL 语言(希伯来语、阿拉伯语等),令我惊讶(或不是)一些 xib 被翻转为从右到左的设计。这确实是一个很棒的功能,但我不想要它..
如何强制 Xcode 不翻转视图,而只翻转我选择的视图?(或逐渐检查它们,以确保它们没问题)?
我想使用autolayout创建一个简单的iOS应用程序,显示三个UIViews.一个在顶部,一个在左边,另一个在右边.顶视图应为50像素高,并完全填充水平空间.左列应填充40%的水平空间,并应填充100%的垂直空间.右列应为水平空间的60%和垂直空间的100%.最后在左边UIView想要添加一个按钮.
如何只在一个设备上更改约束的值.例如,我想为iPhone 4以外的所有iPhone显示400px高度的按钮,我将用300px显示它?
在ViewA之上有一个子视图.请在下面找到屏幕布局.当选择UITextField时显示键盘,即使它与UITextField不重叠,视图也会向上滚动.
ViewA
-> UIButton
subView
-> UIScrollView
-> UITextField
-> UITextField
ViewA
-----------
| |
| |
| Button |
| |
| |
-----------
subView
--------------
| |
| |
| UITextField |
| UITextField |
| |
--------------
Run Code Online (Sandbox Code Playgroud)
我已经注册了键盘通知
- (void) viewWillAppear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidShow:)
name:UIKeyboardDidShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification
object:nil];
}
- (void) keyboardDidShow:(NSNotification *)notification {
NSDictionary* info = [notification userInfo];
CGRect kbRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbRect.size.height, …Run Code Online (Sandbox Code Playgroud) 我设置了我的约束,以便在您加载时有一个占据屏幕的图表,但您可以向下滚动以查看更多信息。但是,我可以看到滚动条在移动,而图表没有移动!
var scrollView: UIScrollView {
let scroll = UIScrollView()
self.view.addSubview(scroll)
scroll.snp.makeConstraints { (make) in
make.edges.equalTo(self.view)
}
return scroll
}
var contentView: UIView {
let content = UIView()
self.scrollView.addSubview(content)
content.snp.makeConstraints { (make) in
make.top.bottom.equalTo(self.scrollView)
make.left.right.equalTo(self.view)
make.width.equalTo(self.scrollView)
}
// self.scrollView.contentSize = content.frame.size
return content
}
override func viewDidLoad() {
super.viewDidLoad()
self.contentView.addSubview(self.chart)
self.chart.snp.makeConstraints { (make) in
// http://snapkit.io/docs/
// https://github.com/SnapKit/SnapKit/issues/448
make.top.equalTo(self.contentView)
make.left.right.equalTo(self.contentView)
make.height.equalTo(self.view).offset(-(self.tabBarController?.tabBar.frame.height)!)
}
self.scrollView.contentSize = CGSize(width: self.view.frame.width, height: 3000) // Testing
}
Run Code Online (Sandbox Code Playgroud)
当前,当滚动表内容时,headerLabel以下滚动并停留在顶部。如何使用自动版式避免这种行为?
var tableView: UITableView!
let headerLabel: UILabel = {
let label = UILabel(frame: .zero)
label.font = UIFont.boldSystemFont(ofSize: 34.0)
label.textColor = .black
label.textAlignment = .center
return label
}()
override func viewDidLoad() {
super.viewDidLoad()
let barHeight: CGFloat = UIApplication.shared.statusBarFrame.size.height
tableView = UITableView(frame: CGRect(x: 0, y: barHeight, width: view.frame.width, height: view.frame.height - barHeight))
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "tableCell")
tableView.dataSource = self
tableView.delegate = self
tableView.separatorStyle = .none
view.addSubview(headerLabel)
view.addSubview(tableView)
headerLabel.snp.makeConstraints { (make) in
make.top.equalTo(view).offset(35)
make.width.equalToSuperview()
}
tableView.snp.makeConstraints { (make) in
make.top.equalTo(headerLabel.snp.bottom)
make.left.bottom.right.equalToSuperview()
} …Run Code Online (Sandbox Code Playgroud) 在Xcode中,当使用自动布局时,我想要定位一个按钮,这样如果这个按钮没有兄弟按钮,那么它应该对齐X中心,否则它们可以并排放置.
我试过用yellow.leadingSpace来superview> = 20,yellow.alignX到superview,但是它不工作,黄色按钮总是留在左边.
self.view 在 ViewController 上。它有什么限制吗?我发现它有一个顶部和一个左侧约束。它肯定有一个框架。自动布局系统从 self.view 开始。我的意思是在 self.view 之前,iOS 系统仍在使用框架来定位视图。之后,我们的视图可以通过自动布局添加。所以在视图控制器中,我使用 self.frame.size.width 作为我自己视图的宽度约束是正确的做法吗?我对吗?
autolayout ×10
ios ×9
swift ×4
xcode ×3
snapkit ×2
uiscrollview ×2
constraints ×1
frame ×1
iphone ×1
localization ×1
objective-c ×1
swift4 ×1
tableview ×1
uiimageview ×1